• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 20:17
CEST 02:17
KST 09:17
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL21] Ro4 Preview: On Course10Code S Season 1 - RO8 Preview7[ASL21] Ro8 Preview Pt2: Progenitors8Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun13[ASL21] Ro8 Preview Pt1: Inheritors16
Community News
Weekly Cups (May 4-10): Clem, MaxPax, herO win0Maestros of The Game 2 announcement and schedule !10Weekly Cups (April 27-May 4): Clem takes triple0RSL Revival: Season 5 - Qualifiers and Main Event12Code S Season 1 (2026) - RO12 Results1
StarCraft 2
General
Weekly Cups (May 4-10): Clem, MaxPax, herO win Code S Season 1 - RO8 Preview Behind the Blue - Team Liquid History Book Weekly Cups (April 27-May 4): Clem takes triple Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool
Tourneys
2026 GSL Season 2 Qualifiers Maestros of The Game 2 announcement and schedule ! SC2 INu's Battles#16 <BO.9> Master Swan Open (Global Bronze-Master 2) GSL Code S Season 1 (2026)
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players
External Content
Mutation # 525 Wheel of Misfortune The PondCast: SC2 News & Results Mutation # 524 Death and Taxes Mutation # 523 Firewall
Brood War
General
Flashes ASL S21 Ro8 Review ASL Tickets to Live Event Finals? [ASL21] Ro4 Preview: On Course Quality of life changes in BW that you will like ? Why there arent any 256x256 pro maps?
Tourneys
[Megathread] Daily Proleagues [ASL21] Semifinals A [BSL22] RO16 Group Stage - 02 - 10 May [ASL21] Ro8 Day 3
Strategy
[G] Hydra ZvZ: An Introduction Simple Questions, Simple Answers Fighting Spirit mining rates Muta micro map competition
Other Games
General Games
Stormgate/Frost Giant Megathread Warcraft III: The Frozen Throne PC Games Sales Thread Path of Exile Nintendo Switch Thread
Dota 2
The Story of Wings Gaming
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread UK Politics Mega-thread YouTube Thread European Politico-economics QA Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread McBoner: A hockey love story Formula 1 Discussion
World Cup 2022
Tech Support
streaming software Strange computer issues (software) [G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
How EEG Data Can Predict Gam…
TrAiDoS
ramps on octagon
StaticNine
Funny Nicknames
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1517 users

Ladder-Balance-Data - Page 10

Forum Index > SC2 General
Post a Reply
Prev 1 8 9 10 11 12 26 Next All
skeldark
Profile Joined April 2010
Germany2223 Posts
Last Edited: 2012-07-11 05:40:45
July 11 2012 05:40 GMT
#181
On July 11 2012 14:29 redruMBunny wrote:
When people can choose from any color for their car, silver generally "wins" (i.e. silver is the most popular car color). Therefore the color silver is imba, because definitionally things that are popular and have a high "win" rate are imba.

When asked how it could be that any color could be imba, we say - people pick silver, so it is by definition imba! (Weren't you following the argument?)
More or less this whole thread is about redefining imbalance. Go through the OP, see how many assumptions are made.


The diffrence is i dont look what car is popular i look what car drives faster.
So silver cars drive faster than black so i come to the conclusion that the color affects the speed.
And now you say: thats because more people drive silver.
I would now ask: why do you think that more people choosing a car makes it faster?
Can you back this assumption up? like i did with mine?




Save gaming: kill esport
Cascade
Profile Blog Joined March 2006
Australia5405 Posts
July 11 2012 05:51 GMT
#182
On July 11 2012 14:18 skeldark wrote:
Show nested quote +
On July 11 2012 13:57 Cascade wrote:
On July 11 2012 13:30 skeldark wrote:
On July 11 2012 13:06 Cascade wrote:
First: nice work on putting these together! Must have been a lot of job.

I'm fine with everything you do, up to the point where you go from average MMR to balance. As many others. You have, very neatly, shown that the average MMR is lower for terran than for zerg. No more, no less.

Why are there more terrans at lower MMR? I don't know.
Because they are UP? Maybe.
Because casual (bad) players are more likely to pick terran due to single player? Maybe.
Because the good players switch away from terran as they perceive them as UP? Maybe.
Because people switch race from terran as they get better? Maybe.
Something else? Could be



True that. But this is balance! its a question how you define balance. But even if the problem is not in the unit design it disrupt the balance of the races = inbalance. Perhaps i use the word to mathematical.

YEs, I think you confuse a lot of people if you let the word imbalance include effects such that single player leading casual players to pick terran. To define balance, I would use something like having an infinite number of equally talented players (whatever that means) train a certain (large) amount of time with one race each, and then let them play an infinite number of games. And I think most people would use similar definitions.

If you use the word "balance" in a very different way, I suggest you to be very clear with what you mean in the OP, or better, use a different word.


Some comments:

1) Your result is essentially the same as in the sc2ranks link you provide.
I know that MMR is not exactly identical to league, but I think everyone here can agree that if there are more of a race at lower MMR, then that will very likely reflect in more of that race also being in lower leagues. And this is in fact what we see.


I even did a short calculation:
+ Show Spoiler +

Look at the number of players for the three races, in gold and above (to compare to your second calculation). Assign a player in gold 0 points, platinum 1 point, diamond 2 points, masters 3 points and GM 4 points. + Show Spoiler +
This is some sort of toy rating, where each point correspond to a league. I don't know exactly how the MMR are divided into leagues, is one league roughly 1000 MMR? If so, then each point would correspond to around 1000MR. GM works differently ofc, but with so few people in GM (in the sc2ranks sample), it shouldn't matter much.
Take the average number of points for each race:

Toss: 1.026
terran: 1.023
zerg: 1.047

Again, this shows that zerg is a bit above terran, and toss somewhere in between. If indeed a league corresponds to 1000 MMR (does it?), then the difference zerg-terran is 0.024 leagues = 24 MMR, which is consistent with your 30 +- 10. If a league corresponds to much more or less than 1000MMR, enough to bring the 0.024 much outside the 30 +- 10 you have, there is a discrepancy. This could potentially be a matter of the different samples, as your sample is more weighted towards higher levels as I understand. So here the agreement in the value is not important, but rather the general trend that zerg is stronger than terran, and toss a bit undecided in between.


a league is not 1000 MMR
Not 100% (promotion offset != league offset ) but close :
+ Show Spoiler +
[image loading]


Thee main point is valid. You can do it with leagues in generell but someone could come with the argument
(all race x are high in the league all race y are low) so thats why this way is more accurate. But overall its the same i agree.

ok, so if a league is roughly 1000MMR (as the error is about a third of the signal, we don't need to be more accurate than between 800 and 1200 I think), it means that the distribution of players in your calculation and the sc2ranks distribution both gives the same result. And that, as you say, the distributions within the leagues don't do funky stuff. I guess expect, but nice to get confirmation from your more accurate method.
edit: oops, now I understand your plot. the lines are the leagues? So it is more like 500 points on average? And I shouldn't have used linearly increasing steps of points for the different leagues. Anyways, close enough I guess. Same ballpark.



2) Random shows a huge signal. You are fine with going from terran has lower average MMR to terran being UP. By the same argument you would conclude that random is horribly underpowered. And you see on sc2ranks that there are a lot more randoms in the lower leagues (again, consistent with your results). This again is presented with the list of possible explanations above.

I think most agree that random is indeed a bit UP, in the sense that a player with a given time put into training would do the worst with random. However, I would guess that the strongest factor would be that high level players tend to switch away from random because they are UP. If 25% of the strong players would play random, I think the MMR signal would me much smaller. But this is my personal thought only, so nevermind.

Point being, this very strong signal maybe would open you to the possibility of other important factors than balance that can influence the average MMR. But well, nothing conclusive, just a little case study, don't take this point too seriously.

Its like the first point more a question of definition of balance.

haha, yes, not really sure where I wanted to go with the randoms.



3) Then I'm also a bit curious about the way you estimate the error. Why 4 groups? With more groups, you would get larger error, with fewer groups you would get a smaller one. Seems a bit arbitrary. Why not just calculate the standard deviation and calculate the error from that? You should have enough statistics to use the central limit theorem. Anyway, I think you would get similar values, I just got a bit curious.



4 because 4 races = near to the size of the racegroups = near to the same datavalue before i take the average.
This way is not optimal. I know that and this is a valid critic. Here are the reasons why i did not test on standart , normalise and calculated it : i was lazy ... and the random testdata is calculated by my computer with me drinking coffee meanwhile ...
My point is i think the random testdata show the error %. Its a not so exact way but in the end i do the same.
I will publish a better datafile with more accounts. This hole thing is a site project of my mmr calculator

ok, I'd find it much easier to calculate standard deviation than programming the split runs. Just take the average of the squared MMR as well, and the rest is a few lines of plus and minus. I guess you are faster programmer than I am though. ^^

I agree that it is "good enough" despite maybe not being perfect.




4) A better measure is what blizzard does. Namely, look at win rates in different matchups, compensating for MMR difference. I don't think you have the information to do that in your program? This method ofc has it's problems as well, and no matter what blizzard says, I don't believe that they can tell if a race is OP, or if the better players just happen to play that race. And your very small difference in average MMR (consistent with the very small signal in sc2ranks) would probably only give a very small difference in win percentage. Well within the 45% to 55% range blizzard is aiming for. But that is a different story.

I have this data. mmr of both players the matchup and the result.
And i agree that setting the +- 5% allow for great inbalance.

Maybe that would be a better analysis, because then you could see if terrans at a certain MMR struggle the most in TvP or TvZ. TvT should be 50%, and TvZ + TvP (weighted by player frequency) should average to 50% as well (or they would not be at that rank). But it should be possible to see what of the other two races each race has the most problems with.

Let's see if you can reproduce blizzards result first. After that the sky is the limit!
Unless, ofc, you are lazy.




5) No offence meant. The original MMR calculation is a great program (gj!), and it's really cool that you find more uses for it! I just think that you got a bit carried away in the interpretation at a certain point. Also, I should mention that I don't want to claim anything about balance. + Show Spoiler +
Except collosus ofc, they are imba.+ Show Spoiler +
jk
I don't want to say that any race is or is not UP or OP. Cheers.

No offence taken ^^. I appreciate your post. Its a nice break from explaining what average does or what the diffrence between an depending and independent error is asking myself what they teach at school in some country's...

Mmm, I hear you.
I mean, I'm fine with people not knowing statistics. It's hard, and not everyone should be required to be an expert to post. I just wish sometimes that people were a bit more aware of what they do and don't know. Then again, I think I myself also sometimes post a bit too confidently in areas that I'm not an expert on, so I can't blame anyone really. But it does discourage this kind of posts, no doubt.



- league is not near to 1000MMR look at the picture. gold to platinum is only 250 mmr
-yes perhaps i should use a diffrent word . But witch one.
- so you can calculate this very fast? in this case
lastest datafile: skeletor.jimmeh.com/mmr/balance.csv

New results are ( after removing everyone under 1k)
Maxerror : 38.7191574666374
ERRORCOUNT : 41.54333333333333% in 5 72.81111111111112% in 10 89.8111111111111% in 15 97.02666666666667% in 20 99.36666666666667% in 25 99.88666666666667% in 30
Race...
T: -28.938886080105476 P 23.43063954261379 Z 0.36671387478577344
Analyse DONE
Zerg and Protoss switch role! halppend in 2 run also but everytime terran stay way under.


How about "uneven player distribution"? Or just write out "different MMR averages" each time, you don't use the B-word that many times.

Hmm, to calculate the errors I just need one run, but I need both averages: <MMR> and <MMR^2>, where <X> means average value of X for all players.
Then you calculate variance
V = <MMR^2> - <MMR>^2
and standard deviation the square root of that:
S = sqrt(<MMR^2> - <MMR>^2)
then you get the standard error by dividing by the square root of number of samples (for that variable, ie race)
error = S/sqrt(N)

And here it is important that the samples are really independent. No duplicates etc. As there are some systematic effects (due to same player sending in a lot of games for example), N doesn't really represent the number of independent samples. So this will be an underestimate of the errors. Add an (arbitrary) factor 2 to the error (ie, use N/4) and you should be pretty safe.

Should be fast, but maybe you need to rerun to get the <MMR^2> for the different races. No need to run divided in groups or anything though.
Cascade
Profile Blog Joined March 2006
Australia5405 Posts
July 11 2012 05:53 GMT
#183
On July 11 2012 14:39 Not_That wrote:
MMR distribution by races.
Click for full version.
[image loading]

Amount of players:
2014 Zerg
1784 Protoss
1516 Terran

The server does matter as MMR is non comparable cross servers. I've decided to remove KR and SEA and keep EU and NA as they are closest to each other in terms of MMRs, and that's where most of our data comes from.

Cool! Can you do 100 or even 200 granularity to make it easier to read? :o)
We are not trying to see any structure smaller than 200 MMR anyway.
Cascade
Profile Blog Joined March 2006
Australia5405 Posts
Last Edited: 2012-07-11 05:56:40
July 11 2012 05:55 GMT
#184
On July 11 2012 14:53 Cascade wrote:
Show nested quote +
On July 11 2012 14:39 Not_That wrote:
MMR distribution by races.
Click for full version.
[image loading]

Amount of players:
2014 Zerg
1784 Protoss
1516 Terran

The server does matter as MMR is non comparable cross servers. I've decided to remove KR and SEA and keep EU and NA as they are closest to each other in terms of MMRs, and that's where most of our data comes from.

Cool! Can you do 100 or even 200 granularity to make it easier to read? :o)
We are not trying to see any structure smaller than 200 MMR anyway.

Oh, and can you normalize the plots as well? So that the bins read "% of players" or something instead. Makes it a lot easier to compare. Sorry. :o)

Now all you can see is that there are more zerg players.
skeldark
Profile Joined April 2010
Germany2223 Posts
July 11 2012 05:55 GMT
#185
On July 11 2012 14:51 Cascade wrote:
Show nested quote +
On July 11 2012 14:18 skeldark wrote:
On July 11 2012 13:57 Cascade wrote:
On July 11 2012 13:30 skeldark wrote:
On July 11 2012 13:06 Cascade wrote:
First: nice work on putting these together! Must have been a lot of job.

I'm fine with everything you do, up to the point where you go from average MMR to balance. As many others. You have, very neatly, shown that the average MMR is lower for terran than for zerg. No more, no less.

Why are there more terrans at lower MMR? I don't know.
Because they are UP? Maybe.
Because casual (bad) players are more likely to pick terran due to single player? Maybe.
Because the good players switch away from terran as they perceive them as UP? Maybe.
Because people switch race from terran as they get better? Maybe.
Something else? Could be



True that. But this is balance! its a question how you define balance. But even if the problem is not in the unit design it disrupt the balance of the races = inbalance. Perhaps i use the word to mathematical.

YEs, I think you confuse a lot of people if you let the word imbalance include effects such that single player leading casual players to pick terran. To define balance, I would use something like having an infinite number of equally talented players (whatever that means) train a certain (large) amount of time with one race each, and then let them play an infinite number of games. And I think most people would use similar definitions.

If you use the word "balance" in a very different way, I suggest you to be very clear with what you mean in the OP, or better, use a different word.


Some comments:

1) Your result is essentially the same as in the sc2ranks link you provide.
I know that MMR is not exactly identical to league, but I think everyone here can agree that if there are more of a race at lower MMR, then that will very likely reflect in more of that race also being in lower leagues. And this is in fact what we see.


I even did a short calculation:
+ Show Spoiler +

Look at the number of players for the three races, in gold and above (to compare to your second calculation). Assign a player in gold 0 points, platinum 1 point, diamond 2 points, masters 3 points and GM 4 points. + Show Spoiler +
This is some sort of toy rating, where each point correspond to a league. I don't know exactly how the MMR are divided into leagues, is one league roughly 1000 MMR? If so, then each point would correspond to around 1000MR. GM works differently ofc, but with so few people in GM (in the sc2ranks sample), it shouldn't matter much.
Take the average number of points for each race:

Toss: 1.026
terran: 1.023
zerg: 1.047

Again, this shows that zerg is a bit above terran, and toss somewhere in between. If indeed a league corresponds to 1000 MMR (does it?), then the difference zerg-terran is 0.024 leagues = 24 MMR, which is consistent with your 30 +- 10. If a league corresponds to much more or less than 1000MMR, enough to bring the 0.024 much outside the 30 +- 10 you have, there is a discrepancy. This could potentially be a matter of the different samples, as your sample is more weighted towards higher levels as I understand. So here the agreement in the value is not important, but rather the general trend that zerg is stronger than terran, and toss a bit undecided in between.


a league is not 1000 MMR
Not 100% (promotion offset != league offset ) but close :
+ Show Spoiler +
[image loading]


Thee main point is valid. You can do it with leagues in generell but someone could come with the argument
(all race x are high in the league all race y are low) so thats why this way is more accurate. But overall its the same i agree.

ok, so if a league is roughly 1000MMR (as the error is about a third of the signal, we don't need to be more accurate than between 800 and 1200 I think), it means that the distribution of players in your calculation and the sc2ranks distribution both gives the same result. And that, as you say, the distributions within the leagues don't do funky stuff. I guess expect, but nice to get confirmation from your more accurate method.
edit: oops, now I understand your plot. the lines are the leagues? So it is more like 500 points on average? And I shouldn't have used linearly increasing steps of points for the different leagues. Anyways, close enough I guess. Same ballpark.



2) Random shows a huge signal. You are fine with going from terran has lower average MMR to terran being UP. By the same argument you would conclude that random is horribly underpowered. And you see on sc2ranks that there are a lot more randoms in the lower leagues (again, consistent with your results). This again is presented with the list of possible explanations above.

I think most agree that random is indeed a bit UP, in the sense that a player with a given time put into training would do the worst with random. However, I would guess that the strongest factor would be that high level players tend to switch away from random because they are UP. If 25% of the strong players would play random, I think the MMR signal would me much smaller. But this is my personal thought only, so nevermind.

Point being, this very strong signal maybe would open you to the possibility of other important factors than balance that can influence the average MMR. But well, nothing conclusive, just a little case study, don't take this point too seriously.

Its like the first point more a question of definition of balance.

haha, yes, not really sure where I wanted to go with the randoms.



3) Then I'm also a bit curious about the way you estimate the error. Why 4 groups? With more groups, you would get larger error, with fewer groups you would get a smaller one. Seems a bit arbitrary. Why not just calculate the standard deviation and calculate the error from that? You should have enough statistics to use the central limit theorem. Anyway, I think you would get similar values, I just got a bit curious.



4 because 4 races = near to the size of the racegroups = near to the same datavalue before i take the average.
This way is not optimal. I know that and this is a valid critic. Here are the reasons why i did not test on standart , normalise and calculated it : i was lazy ... and the random testdata is calculated by my computer with me drinking coffee meanwhile ...
My point is i think the random testdata show the error %. Its a not so exact way but in the end i do the same.
I will publish a better datafile with more accounts. This hole thing is a site project of my mmr calculator

ok, I'd find it much easier to calculate standard deviation than programming the split runs. Just take the average of the squared MMR as well, and the rest is a few lines of plus and minus. I guess you are faster programmer than I am though. ^^

I agree that it is "good enough" despite maybe not being perfect.




4) A better measure is what blizzard does. Namely, look at win rates in different matchups, compensating for MMR difference. I don't think you have the information to do that in your program? This method ofc has it's problems as well, and no matter what blizzard says, I don't believe that they can tell if a race is OP, or if the better players just happen to play that race. And your very small difference in average MMR (consistent with the very small signal in sc2ranks) would probably only give a very small difference in win percentage. Well within the 45% to 55% range blizzard is aiming for. But that is a different story.

I have this data. mmr of both players the matchup and the result.
And i agree that setting the +- 5% allow for great inbalance.

Maybe that would be a better analysis, because then you could see if terrans at a certain MMR struggle the most in TvP or TvZ. TvT should be 50%, and TvZ + TvP (weighted by player frequency) should average to 50% as well (or they would not be at that rank). But it should be possible to see what of the other two races each race has the most problems with.

Let's see if you can reproduce blizzards result first. After that the sky is the limit!
Unless, ofc, you are lazy.




5) No offence meant. The original MMR calculation is a great program (gj!), and it's really cool that you find more uses for it! I just think that you got a bit carried away in the interpretation at a certain point. Also, I should mention that I don't want to claim anything about balance. + Show Spoiler +
Except collosus ofc, they are imba.+ Show Spoiler +
jk
I don't want to say that any race is or is not UP or OP. Cheers.

No offence taken ^^. I appreciate your post. Its a nice break from explaining what average does or what the diffrence between an depending and independent error is asking myself what they teach at school in some country's...

Mmm, I hear you.
I mean, I'm fine with people not knowing statistics. It's hard, and not everyone should be required to be an expert to post. I just wish sometimes that people were a bit more aware of what they do and don't know. Then again, I think I myself also sometimes post a bit too confidently in areas that I'm not an expert on, so I can't blame anyone really. But it does discourage this kind of posts, no doubt.



- league is not near to 1000MMR look at the picture. gold to platinum is only 250 mmr
-yes perhaps i should use a diffrent word . But witch one.
- so you can calculate this very fast? in this case
lastest datafile: skeletor.jimmeh.com/mmr/balance.csv

New results are ( after removing everyone under 1k)
Maxerror : 38.7191574666374
ERRORCOUNT : 41.54333333333333% in 5 72.81111111111112% in 10 89.8111111111111% in 15 97.02666666666667% in 20 99.36666666666667% in 25 99.88666666666667% in 30
Race...
T: -28.938886080105476 P 23.43063954261379 Z 0.36671387478577344
Analyse DONE
Zerg and Protoss switch role! halppend in 2 run also but everytime terran stay way under.


How about "uneven player distribution"? Or just write out "different MMR averages" each time, you don't use the B-word that many times.

Hmm, to calculate the errors I just need one run, but I need both averages: <MMR> and <MMR^2>, where <X> means average value of X for all players.
Then you calculate variance
V = <MMR^2> - <MMR>^2
and standard deviation the square root of that:
S = sqrt(<MMR^2> - <MMR>^2)
then you get the standard error by dividing by the square root of number of samples (for that variable, ie race)
error = S/sqrt(N)

And here it is important that the samples are really independent. No duplicates etc. As there are some systematic effects (due to same player sending in a lot of games for example), N doesn't really represent the number of independent samples. So this will be an underestimate of the errors. Add an (arbitrary) factor 2 to the error (ie, use N/4) and you should be pretty safe.

Should be fast, but maybe you need to rerun to get the <MMR^2> for the different races. No need to run divided in groups or anything though.

Like i said. I linked you the data. When do you post the result

I understand you can not just post something about balance without backing it up. But i think i backed it up reasonable.
Not perfect but reasonable. And to be honest im running out of time for today.

Save gaming: kill esport
Cascade
Profile Blog Joined March 2006
Australia5405 Posts
July 11 2012 06:03 GMT
#186
On July 11 2012 14:55 skeldark wrote:
Show nested quote +
On July 11 2012 14:51 Cascade wrote:
On July 11 2012 14:18 skeldark wrote:
On July 11 2012 13:57 Cascade wrote:
On July 11 2012 13:30 skeldark wrote:
On July 11 2012 13:06 Cascade wrote:
First: nice work on putting these together! Must have been a lot of job.

I'm fine with everything you do, up to the point where you go from average MMR to balance. As many others. You have, very neatly, shown that the average MMR is lower for terran than for zerg. No more, no less.

Why are there more terrans at lower MMR? I don't know.
Because they are UP? Maybe.
Because casual (bad) players are more likely to pick terran due to single player? Maybe.
Because the good players switch away from terran as they perceive them as UP? Maybe.
Because people switch race from terran as they get better? Maybe.
Something else? Could be



True that. But this is balance! its a question how you define balance. But even if the problem is not in the unit design it disrupt the balance of the races = inbalance. Perhaps i use the word to mathematical.

YEs, I think you confuse a lot of people if you let the word imbalance include effects such that single player leading casual players to pick terran. To define balance, I would use something like having an infinite number of equally talented players (whatever that means) train a certain (large) amount of time with one race each, and then let them play an infinite number of games. And I think most people would use similar definitions.

If you use the word "balance" in a very different way, I suggest you to be very clear with what you mean in the OP, or better, use a different word.


Some comments:

1) Your result is essentially the same as in the sc2ranks link you provide.
I know that MMR is not exactly identical to league, but I think everyone here can agree that if there are more of a race at lower MMR, then that will very likely reflect in more of that race also being in lower leagues. And this is in fact what we see.


I even did a short calculation:
+ Show Spoiler +

Look at the number of players for the three races, in gold and above (to compare to your second calculation). Assign a player in gold 0 points, platinum 1 point, diamond 2 points, masters 3 points and GM 4 points. + Show Spoiler +
This is some sort of toy rating, where each point correspond to a league. I don't know exactly how the MMR are divided into leagues, is one league roughly 1000 MMR? If so, then each point would correspond to around 1000MR. GM works differently ofc, but with so few people in GM (in the sc2ranks sample), it shouldn't matter much.
Take the average number of points for each race:

Toss: 1.026
terran: 1.023
zerg: 1.047

Again, this shows that zerg is a bit above terran, and toss somewhere in between. If indeed a league corresponds to 1000 MMR (does it?), then the difference zerg-terran is 0.024 leagues = 24 MMR, which is consistent with your 30 +- 10. If a league corresponds to much more or less than 1000MMR, enough to bring the 0.024 much outside the 30 +- 10 you have, there is a discrepancy. This could potentially be a matter of the different samples, as your sample is more weighted towards higher levels as I understand. So here the agreement in the value is not important, but rather the general trend that zerg is stronger than terran, and toss a bit undecided in between.


a league is not 1000 MMR
Not 100% (promotion offset != league offset ) but close :
+ Show Spoiler +
[image loading]


Thee main point is valid. You can do it with leagues in generell but someone could come with the argument
(all race x are high in the league all race y are low) so thats why this way is more accurate. But overall its the same i agree.

ok, so if a league is roughly 1000MMR (as the error is about a third of the signal, we don't need to be more accurate than between 800 and 1200 I think), it means that the distribution of players in your calculation and the sc2ranks distribution both gives the same result. And that, as you say, the distributions within the leagues don't do funky stuff. I guess expect, but nice to get confirmation from your more accurate method.
edit: oops, now I understand your plot. the lines are the leagues? So it is more like 500 points on average? And I shouldn't have used linearly increasing steps of points for the different leagues. Anyways, close enough I guess. Same ballpark.



2) Random shows a huge signal. You are fine with going from terran has lower average MMR to terran being UP. By the same argument you would conclude that random is horribly underpowered. And you see on sc2ranks that there are a lot more randoms in the lower leagues (again, consistent with your results). This again is presented with the list of possible explanations above.

I think most agree that random is indeed a bit UP, in the sense that a player with a given time put into training would do the worst with random. However, I would guess that the strongest factor would be that high level players tend to switch away from random because they are UP. If 25% of the strong players would play random, I think the MMR signal would me much smaller. But this is my personal thought only, so nevermind.

Point being, this very strong signal maybe would open you to the possibility of other important factors than balance that can influence the average MMR. But well, nothing conclusive, just a little case study, don't take this point too seriously.

Its like the first point more a question of definition of balance.

haha, yes, not really sure where I wanted to go with the randoms.



3) Then I'm also a bit curious about the way you estimate the error. Why 4 groups? With more groups, you would get larger error, with fewer groups you would get a smaller one. Seems a bit arbitrary. Why not just calculate the standard deviation and calculate the error from that? You should have enough statistics to use the central limit theorem. Anyway, I think you would get similar values, I just got a bit curious.



4 because 4 races = near to the size of the racegroups = near to the same datavalue before i take the average.
This way is not optimal. I know that and this is a valid critic. Here are the reasons why i did not test on standart , normalise and calculated it : i was lazy ... and the random testdata is calculated by my computer with me drinking coffee meanwhile ...
My point is i think the random testdata show the error %. Its a not so exact way but in the end i do the same.
I will publish a better datafile with more accounts. This hole thing is a site project of my mmr calculator

ok, I'd find it much easier to calculate standard deviation than programming the split runs. Just take the average of the squared MMR as well, and the rest is a few lines of plus and minus. I guess you are faster programmer than I am though. ^^

I agree that it is "good enough" despite maybe not being perfect.




4) A better measure is what blizzard does. Namely, look at win rates in different matchups, compensating for MMR difference. I don't think you have the information to do that in your program? This method ofc has it's problems as well, and no matter what blizzard says, I don't believe that they can tell if a race is OP, or if the better players just happen to play that race. And your very small difference in average MMR (consistent with the very small signal in sc2ranks) would probably only give a very small difference in win percentage. Well within the 45% to 55% range blizzard is aiming for. But that is a different story.

I have this data. mmr of both players the matchup and the result.
And i agree that setting the +- 5% allow for great inbalance.

Maybe that would be a better analysis, because then you could see if terrans at a certain MMR struggle the most in TvP or TvZ. TvT should be 50%, and TvZ + TvP (weighted by player frequency) should average to 50% as well (or they would not be at that rank). But it should be possible to see what of the other two races each race has the most problems with.

Let's see if you can reproduce blizzards result first. After that the sky is the limit!
Unless, ofc, you are lazy.




5) No offence meant. The original MMR calculation is a great program (gj!), and it's really cool that you find more uses for it! I just think that you got a bit carried away in the interpretation at a certain point. Also, I should mention that I don't want to claim anything about balance. + Show Spoiler +
Except collosus ofc, they are imba.+ Show Spoiler +
jk
I don't want to say that any race is or is not UP or OP. Cheers.

No offence taken ^^. I appreciate your post. Its a nice break from explaining what average does or what the diffrence between an depending and independent error is asking myself what they teach at school in some country's...

Mmm, I hear you.
I mean, I'm fine with people not knowing statistics. It's hard, and not everyone should be required to be an expert to post. I just wish sometimes that people were a bit more aware of what they do and don't know. Then again, I think I myself also sometimes post a bit too confidently in areas that I'm not an expert on, so I can't blame anyone really. But it does discourage this kind of posts, no doubt.



- league is not near to 1000MMR look at the picture. gold to platinum is only 250 mmr
-yes perhaps i should use a diffrent word . But witch one.
- so you can calculate this very fast? in this case
lastest datafile: skeletor.jimmeh.com/mmr/balance.csv

New results are ( after removing everyone under 1k)
Maxerror : 38.7191574666374
ERRORCOUNT : 41.54333333333333% in 5 72.81111111111112% in 10 89.8111111111111% in 15 97.02666666666667% in 20 99.36666666666667% in 25 99.88666666666667% in 30
Race...
T: -28.938886080105476 P 23.43063954261379 Z 0.36671387478577344
Analyse DONE
Zerg and Protoss switch role! halppend in 2 run also but everytime terran stay way under.


How about "uneven player distribution"? Or just write out "different MMR averages" each time, you don't use the B-word that many times.

Hmm, to calculate the errors I just need one run, but I need both averages: <MMR> and <MMR^2>, where <X> means average value of X for all players.
Then you calculate variance
V = <MMR^2> - <MMR>^2
and standard deviation the square root of that:
S = sqrt(<MMR^2> - <MMR>^2)
then you get the standard error by dividing by the square root of number of samples (for that variable, ie race)
error = S/sqrt(N)

And here it is important that the samples are really independent. No duplicates etc. As there are some systematic effects (due to same player sending in a lot of games for example), N doesn't really represent the number of independent samples. So this will be an underestimate of the errors. Add an (arbitrary) factor 2 to the error (ie, use N/4) and you should be pretty safe.

Should be fast, but maybe you need to rerun to get the <MMR^2> for the different races. No need to run divided in groups or anything though.

Like i said. I linked you the data. When do you post the result

I understand you can not just post something about balance without backing it up. But i think i backed it up reasonable.
Not perfect but reasonable. And to be honest im running out of time for today.


ahaha, ok. Let me dust off my MS office analysis skills, brb.

I need to leave soon as well, just quick analysis!!
lazyitachi
Profile Blog Joined December 2011
1043 Posts
July 11 2012 06:08 GMT
#187
T is underrepresented (28.5%) and skewed towards lower league while Z is overrepresented (37.8%) in sample,
Max and Min MMR can deviate by more than 1500 for a single submitter.
The data is right skewed to higher league i.e. not normal.

Seems like data or methodology is not producing any consistent point for analysis.
Remember, first rule of modelling garbage in garbage out.
Not_That
Profile Joined April 2011
287 Posts
July 11 2012 06:13 GMT
#188
On July 11 2012 14:53 Cascade wrote:
Show nested quote +
On July 11 2012 14:39 Not_That wrote:
MMR distribution by races.
Click for full version.
[image loading]

Amount of players:
2014 Zerg
1784 Protoss
1516 Terran

The server does matter as MMR is non comparable cross servers. I've decided to remove KR and SEA and keep EU and NA as they are closest to each other in terms of MMRs, and that's where most of our data comes from.

Cool! Can you do 100 or even 200 granularity to make it easier to read? :o)
We are not trying to see any structure smaller than 200 MMR anyway.



Here you go:
[image loading]

We tried having % of total players on the y axis. The problem with that is that it doesn't have information regarding the amount of players. The dots at the edges of the graph look very strange, for example 100% of players above 3200 are Protoss. Obviously it's not very useful. We could snip the edges of the graph, but where? How many players are enough? Are 21 players between 2700 and 2750 enough? etc.
Cascade
Profile Blog Joined March 2006
Australia5405 Posts
July 11 2012 06:35 GMT
#189
On July 11 2012 15:13 Not_That wrote:
Show nested quote +
On July 11 2012 14:53 Cascade wrote:
On July 11 2012 14:39 Not_That wrote:
MMR distribution by races.
Click for full version.
[image loading]

Amount of players:
2014 Zerg
1784 Protoss
1516 Terran

The server does matter as MMR is non comparable cross servers. I've decided to remove KR and SEA and keep EU and NA as they are closest to each other in terms of MMRs, and that's where most of our data comes from.

Cool! Can you do 100 or even 200 granularity to make it easier to read? :o)
We are not trying to see any structure smaller than 200 MMR anyway.



Here you go:
[image loading]

We tried having % of total players on the y axis. The problem with that is that it doesn't have information regarding the amount of players. The dots at the edges of the graph look very strange, for example 100% of players above 3200 are Protoss. Obviously it's not very useful. We could snip the edges of the graph, but where? How many players are enough? Are 21 players between 2700 and 2750 enough? etc.

Thanks!

I mean % of the zerg players in that bin. That is, (number of zergs in that bin)/(number of zergs total). Just like you have plotted now, only divide all zerg entries with the number of zerg players, etc. Now the zerg plot is higher in mid-range, but it is not clear if that is because a larger fraction of zergs have mid-range MMR, or if there are just more zergs.
Cascade
Profile Blog Joined March 2006
Australia5405 Posts
Last Edited: 2012-07-11 06:55:31
July 11 2012 06:47 GMT
#190
ok, fixed the errors for you: http://www.megafileupload.com/en/file/360098/balance-ods.html

results:
toss:
<MMR> = 1662
samples: 1881
standard deviation: 541
standard error: 12

terran:
<MMR> = 1619
samples: 1598
standrad deviation: 504
standard error: 13

zerg:
<MMR> = 1655
samples: 2113
standard deviation: 419
standard error: 9

Note that the actual error probably is larger than that though, as there are correlations in the sample.
Ignoring that, and setting the terran MMR as zero:
terran: 0 +- 13
toss: 43 +- 12
zerg: 36 +- 9

The difference in MMR between
zerg and terran: 36 +- 16
toss and terran: 43 +- 18
zerg and toss: 7 +- 15

Taking into account that the errors are underestimates, the signal is barely significant. Maybe 90% or so. Need more data.

edit: and with that I'm gone. I'll be back tomorrow. Hope I didn't do any stupid mistakes in the hurry. it should all be in the file.
Not_That
Profile Joined April 2011
287 Posts
Last Edited: 2012-07-11 07:26:20
July 11 2012 07:05 GMT
#191
On July 11 2012 15:35 Cascade wrote:
Show nested quote +
On July 11 2012 15:13 Not_That wrote:
On July 11 2012 14:53 Cascade wrote:
On July 11 2012 14:39 Not_That wrote:
MMR distribution by races.
Click for full version.
[image loading]

Amount of players:
2014 Zerg
1784 Protoss
1516 Terran

The server does matter as MMR is non comparable cross servers. I've decided to remove KR and SEA and keep EU and NA as they are closest to each other in terms of MMRs, and that's where most of our data comes from.

Cool! Can you do 100 or even 200 granularity to make it easier to read? :o)
We are not trying to see any structure smaller than 200 MMR anyway.



Here you go:
[image loading]

We tried having % of total players on the y axis. The problem with that is that it doesn't have information regarding the amount of players. The dots at the edges of the graph look very strange, for example 100% of players above 3200 are Protoss. Obviously it's not very useful. We could snip the edges of the graph, but where? How many players are enough? Are 21 players between 2700 and 2750 enough? etc.

Thanks!

I mean % of the zerg players in that bin. That is, (number of zergs in that bin)/(number of zergs total). Just like you have plotted now, only divide all zerg entries with the number of zerg players, etc. Now the zerg plot is higher in mid-range, but it is not clear if that is because a larger fraction of zergs have mid-range MMR, or if there are just more zergs.


Good thinking.

Same graph normalized, each bar representing the percentage of players of each race in the bin:
[image loading]

Edit: Corrected colors
Cascade
Profile Blog Joined March 2006
Australia5405 Posts
July 11 2012 07:15 GMT
#192
On July 11 2012 16:05 Not_That wrote:
Show nested quote +
On July 11 2012 15:35 Cascade wrote:
On July 11 2012 15:13 Not_That wrote:
On July 11 2012 14:53 Cascade wrote:
On July 11 2012 14:39 Not_That wrote:
MMR distribution by races.
Click for full version.
[image loading]

Amount of players:
2014 Zerg
1784 Protoss
1516 Terran

The server does matter as MMR is non comparable cross servers. I've decided to remove KR and SEA and keep EU and NA as they are closest to each other in terms of MMRs, and that's where most of our data comes from.

Cool! Can you do 100 or even 200 granularity to make it easier to read? :o)
We are not trying to see any structure smaller than 200 MMR anyway.



Here you go:
[image loading]

We tried having % of total players on the y axis. The problem with that is that it doesn't have information regarding the amount of players. The dots at the edges of the graph look very strange, for example 100% of players above 3200 are Protoss. Obviously it's not very useful. We could snip the edges of the graph, but where? How many players are enough? Are 21 players between 2700 and 2750 enough? etc.

Thanks!

I mean % of the zerg players in that bin. That is, (number of zergs in that bin)/(number of zergs total). Just like you have plotted now, only divide all zerg entries with the number of zerg players, etc. Now the zerg plot is higher in mid-range, but it is not clear if that is because a larger fraction of zergs have mid-range MMR, or if there are just more zergs.


Good thinking.

Same graph normalized, each bar representing the percentage of players of each race in the bin:
[image loading]

Nice!

Now just put the error bars back on that plot, and it's perfect! *leaving*
lazyitachi
Profile Blog Joined December 2011
1043 Posts
July 11 2012 07:20 GMT
#193
On July 11 2012 15:47 Cascade wrote:
ok, fixed the errors for you: http://www.megafileupload.com/en/file/360098/balance-ods.html

results:
toss:
<MMR> = 1662
samples: 1881
standard deviation: 541
standard error: 12

terran:
<MMR> = 1619
samples: 1598
standrad deviation: 504
standard error: 13

zerg:
<MMR> = 1655
samples: 2113
standard deviation: 419
standard error: 9

Note that the actual error probably is larger than that though, as there are correlations in the sample.
Ignoring that, and setting the terran MMR as zero:
terran: 0 +- 13
toss: 43 +- 12
zerg: 36 +- 9

The difference in MMR between
zerg and terran: 36 +- 16
toss and terran: 43 +- 18
zerg and toss: 7 +- 15

Taking into account that the errors are underestimates, the signal is barely significant. Maybe 90% or so. Need more data.

edit: and with that I'm gone. I'll be back tomorrow. Hope I didn't do any stupid mistakes in the hurry. it should all be in the file.


This is a two-tail test. You did not account for P-value.
Assuming high df, 1.036 SE is equivalent to only being 70% certain, 1.96 SE is 95% certain and 3.08 SE is 99.8% certain.

Assuming the data is correct, one might argue that terran is 95% certain to be underpowered BUT as I mentioned the methodology and data seems to be suspect.
I
f you show me that each person has less than 100 - 200 MMR movement then I would be more assured but seems that the calculation of the MMR is so suspect to generate movement of MMR up to 1000+++. Lol.. Math. GIGO
graNite
Profile Blog Joined December 2010
Germany4434 Posts
July 11 2012 07:23 GMT
#194
Good job, nice statistics.

Is it possible to determine whether a matchup is random or not (espacially mirrors) by looking at winrates by MMR?
What I mean: in ZVZ, how often does a player with (lets say 200 points) smaller MMR win ?
Would that be a good way to detect randomness?
"Oink oink, bitches" - Tasteless on Pigbaby winning a map against Flash
Cascade
Profile Blog Joined March 2006
Australia5405 Posts
July 11 2012 07:23 GMT
#195
On July 11 2012 16:20 lazyitachi wrote:
Show nested quote +
On July 11 2012 15:47 Cascade wrote:
ok, fixed the errors for you: http://www.megafileupload.com/en/file/360098/balance-ods.html

results:
toss:
<MMR> = 1662
samples: 1881
standard deviation: 541
standard error: 12

terran:
<MMR> = 1619
samples: 1598
standrad deviation: 504
standard error: 13

zerg:
<MMR> = 1655
samples: 2113
standard deviation: 419
standard error: 9

Note that the actual error probably is larger than that though, as there are correlations in the sample.
Ignoring that, and setting the terran MMR as zero:
terran: 0 +- 13
toss: 43 +- 12
zerg: 36 +- 9

The difference in MMR between
zerg and terran: 36 +- 16
toss and terran: 43 +- 18
zerg and toss: 7 +- 15

Taking into account that the errors are underestimates, the signal is barely significant. Maybe 90% or so. Need more data.

edit: and with that I'm gone. I'll be back tomorrow. Hope I didn't do any stupid mistakes in the hurry. it should all be in the file.


This is a two-tail test. You did not account for P-value.
Assuming high df, 1.036 SE is equivalent to only being 70% certain, 1.96 SE is 95% certain and 3.08 SE is 99.8% certain.

Assuming the data is correct, one might argue that terran is 95% certain to be underpowered BUT as I mentioned the methodology and data seems to be suspect.
I
f you show me that each person has less than 100 - 200 MMR movement then I would be more assured but seems that the calculation of the MMR is so suspect to generate movement of MMR up to 1000+++. Lol.. Math. GIGO

the standard deviation is over the distribution of all players, not for a single player. each sample is one player.
Not_That
Profile Joined April 2011
287 Posts
July 11 2012 07:27 GMT
#196
On July 11 2012 16:15 Cascade wrote:
Show nested quote +
On July 11 2012 16:05 Not_That wrote:
On July 11 2012 15:35 Cascade wrote:
On July 11 2012 15:13 Not_That wrote:
On July 11 2012 14:53 Cascade wrote:
On July 11 2012 14:39 Not_That wrote:
MMR distribution by races.
Click for full version.
[image loading]

Amount of players:
2014 Zerg
1784 Protoss
1516 Terran

The server does matter as MMR is non comparable cross servers. I've decided to remove KR and SEA and keep EU and NA as they are closest to each other in terms of MMRs, and that's where most of our data comes from.

Cool! Can you do 100 or even 200 granularity to make it easier to read? :o)
We are not trying to see any structure smaller than 200 MMR anyway.



Here you go:
[image loading]

We tried having % of total players on the y axis. The problem with that is that it doesn't have information regarding the amount of players. The dots at the edges of the graph look very strange, for example 100% of players above 3200 are Protoss. Obviously it's not very useful. We could snip the edges of the graph, but where? How many players are enough? Are 21 players between 2700 and 2750 enough? etc.

Thanks!

I mean % of the zerg players in that bin. That is, (number of zergs in that bin)/(number of zergs total). Just like you have plotted now, only divide all zerg entries with the number of zerg players, etc. Now the zerg plot is higher in mid-range, but it is not clear if that is because a larger fraction of zergs have mid-range MMR, or if there are just more zergs.


Good thinking.

Same graph normalized, each bar representing the percentage of players of each race in the bin:
[image loading]

Nice!

Now just put the error bars back on that plot, and it's perfect! *leaving*


How do I figure out error margins for a graph with granularity?
Fixed colors btw.
NoobCrunch
Profile Joined December 2011
79 Posts
Last Edited: 2012-07-11 08:35:02
July 11 2012 07:36 GMT
#197
On July 11 2012 15:47 Cascade wrote:
ok, fixed the errors for you: http://www.megafileupload.com/en/file/360098/balance-ods.html

results:
toss:
<MMR> = 1662
samples: 1881
standard deviation: 541
standard error: 12

terran:
<MMR> = 1619
samples: 1598
standrad deviation: 504
standard error: 13

zerg:
<MMR> = 1655
samples: 2113
standard deviation: 419
standard error: 9

Note that the actual error probably is larger than that though, as there are correlations in the sample.
Ignoring that, and setting the terran MMR as zero:
terran: 0 +- 13
toss: 43 +- 12
zerg: 36 +- 9

The difference in MMR between
zerg and terran: 36 +- 16
toss and terran: 43 +- 18
zerg and toss: 7 +- 15

Taking into account that the errors are underestimates, the signal is barely significant. Maybe 90% or so. Need more data.

edit: and with that I'm gone. I'll be back tomorrow. Hope I didn't do any stupid mistakes in the hurry. it should all be in the file.


When I calculated the T-test statistic for comparing the sample means of Zerg and Terran MMR I got 2.32258065 which is something around P < 0.01 for the one-sided test. For the two-sided test P < 0.02, there is significant evidence that Zerg players have different (higher) MMR than terran players.

However, the original data wasn't collected through an SRS of battle.net players (although I don't really think it's going to matter in this case). Additionally, terran mean MMR isn't really independent of zerg mean MMR. I'd have to think more about this to see if this affected the validity of the results. Including bronze league MMR in the calculation of mean MMR is dangerous because bronze league mostly consists of terran, lowering mean terran MMR.

The real question is if that 36 MMR difference between Zerg and Terran is indicative of imbalance. The OP mentioned that this difference was about 3 games in favor of the zerg. I think the MMR difference is pretty negligible even though Zerg do have statistically significant higher MMR than terran.

What we should do is look at the mean MMR for zerg and terran at higher levels of MMR and see if Zerg has statistically significantly higher MMR. Which, according to this graph below, could be possible. However, the assumption that all races have equally skilled players might not hold at smaller sample sizes of higher MMR players. Click on this picture
http://i50.tinypic.com/213m4pl.jpg.
lazyitachi
Profile Blog Joined December 2011
1043 Posts
July 11 2012 07:42 GMT
#198
On July 11 2012 16:23 Cascade wrote:
Show nested quote +
On July 11 2012 16:20 lazyitachi wrote:
On July 11 2012 15:47 Cascade wrote:
ok, fixed the errors for you: http://www.megafileupload.com/en/file/360098/balance-ods.html

results:
toss:
<MMR> = 1662
samples: 1881
standard deviation: 541
standard error: 12

terran:
<MMR> = 1619
samples: 1598
standrad deviation: 504
standard error: 13

zerg:
<MMR> = 1655
samples: 2113
standard deviation: 419
standard error: 9

Note that the actual error probably is larger than that though, as there are correlations in the sample.
Ignoring that, and setting the terran MMR as zero:
terran: 0 +- 13
toss: 43 +- 12
zerg: 36 +- 9

The difference in MMR between
zerg and terran: 36 +- 16
toss and terran: 43 +- 18
zerg and toss: 7 +- 15

Taking into account that the errors are underestimates, the signal is barely significant. Maybe 90% or so. Need more data.

edit: and with that I'm gone. I'll be back tomorrow. Hope I didn't do any stupid mistakes in the hurry. it should all be in the file.


This is a two-tail test. You did not account for P-value.
Assuming high df, 1.036 SE is equivalent to only being 70% certain, 1.96 SE is 95% certain and 3.08 SE is 99.8% certain.

Assuming the data is correct, one might argue that terran is 95% certain to be underpowered BUT as I mentioned the methodology and data seems to be suspect.
I
f you show me that each person has less than 100 - 200 MMR movement then I would be more assured but seems that the calculation of the MMR is so suspect to generate movement of MMR up to 1000+++. Lol.. Math. GIGO

the standard deviation is over the distribution of all players, not for a single player. each sample is one player.



So if I take 1000000000 faulty data then my data is now correct? Logic?
skeldark
Profile Joined April 2010
Germany2223 Posts
Last Edited: 2012-07-11 08:25:36
July 11 2012 08:17 GMT
#199
On July 11 2012 16:36 NoobCrunch wrote:
Show nested quote +
On July 11 2012 15:47 Cascade wrote:
ok, fixed the errors for you: http://www.megafileupload.com/en/file/360098/balance-ods.html

results:
toss:
<MMR> = 1662
samples: 1881
standard deviation: 541
standard error: 12

terran:
<MMR> = 1619
samples: 1598
standrad deviation: 504
standard error: 13

zerg:
<MMR> = 1655
samples: 2113
standard deviation: 419
standard error: 9

Note that the actual error probably is larger than that though, as there are correlations in the sample.
Ignoring that, and setting the terran MMR as zero:
terran: 0 +- 13
toss: 43 +- 12
zerg: 36 +- 9

The difference in MMR between
zerg and terran: 36 +- 16
toss and terran: 43 +- 18
zerg and toss: 7 +- 15

Taking into account that the errors are underestimates, the signal is barely significant. Maybe 90% or so. Need more data.

edit: and with that I'm gone. I'll be back tomorrow. Hope I didn't do any stupid mistakes in the hurry. it should all be in the file.


When I calculated the T-test statistic for comparing the sample means of Zerg and Terran MMR I got 2.32258065 which is something around P < 0.01 for the one-sided test. Even for at two-sided test P < 0.02. There is significant evidence that Zerg players have different (higher) MMR than terran players.

However, the original data wasn't collected through an SRS of battle.net players (although I don't really think it's going to matter in this case). Additionally, terran mean MMR isn't really independent of zerg mean MMR. I'd have to think more about this to see if this affected the validity of the results. Including bronze league MMR in the calculation of mean MMR is dangerous because bronze league mostly consists of terran, lowering mean terran MMR.

The real question is if that 36 MMR difference between Zerg and Terran is indicative of imbalance. I think the MMR difference is pretty negligible even though Zerg do have statistically significant higher MMR than terran.

What we should do is look at the mean MMR for zerg and terran at higher levels of MMR and see if Zerg has statistically significantly higher MMR. Which, according to this graph below, could be possible. However, the assumption that all races have equally skilled players might not hold at smaller sample sizes of higher MMR players. Click on this picture
http://i50.tinypic.com/213m4pl.jpg.


welcome on board


On July 11 2012 16:23 graNite wrote:
Good job, nice statistics.

Is it possible to determine whether a matchup is random or not (espacially mirrors) by looking at winrates by MMR?
What I mean: in ZVZ, how often does a player with (lets say 200 points) smaller MMR win ?
Would that be a good way to detect randomness?


I dont know if i understand the question.

I could (not in now but theoretic) say you how big the chance is by only watching the mmr of the 2 players.
Because the mmr includes the win% the skill system gives the players.
I dont understand what you mean with randomness here.
Save gaming: kill esport
Goetzinho ftw
Profile Joined June 2012
Germany115 Posts
July 11 2012 08:24 GMT
#200
This gives us the facts we all knew before. We all know that terran is by far the hardest race to play, especially if you don't have the multitasking and micro that korean terrans have.
Prev 1 8 9 10 11 12 26 Next All
Please log in or register to reply.
Live Events Refresh
OSC
00:00
OSC Elite Rising Star #19
CranKy Ducklings20
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
PiGStarcraft236
Nina 91
SpeCial 74
CosmosSc2 33
StarCraft: Brood War
GuemChi 5264
Artosis 665
Dota 2
monkeys_forever672
NeuroSwarm135
League of Legends
Doublelift5863
JimRising 504
Counter-Strike
tarik_tv5190
fl0m4598
Fnx 1301
Super Smash Bros
PPMD61
Other Games
summit1g9897
Liquid`RaSZi1497
shahzam863
C9.Mang0407
XaKoH 234
Sick191
uThermal185
ArmadaUGS98
Maynarde96
Organizations
Other Games
gamesdonequick840
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 16 non-featured ]
StarCraft 2
• Hupsaiya 93
• CranKy Ducklings SOOP9
• davetesta6
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• Pr0nogo 4
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• masondota21340
League of Legends
• imaqtpie1684
Upcoming Events
CranKy Ducklings
9h 43m
Afreeca Starleague
9h 43m
Light vs Flash
INu's Battles
10h 43m
ByuN vs herO
PiGosaur Cup
23h 43m
Replay Cast
1d 8h
Replay Cast
1d 23h
The PondCast
2 days
OSC
2 days
Replay Cast
2 days
RSL Revival
3 days
[ Show More ]
OSC
3 days
Korean StarCraft League
4 days
RSL Revival
4 days
BSL
4 days
GSL
5 days
Cure vs herO
SHIN vs Maru
BSL
5 days
Replay Cast
6 days
Replay Cast
6 days
Liquipedia Results

Completed

Proleague 2026-05-11
WardiTV TLMC #16
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
KK 2v2 League Season 1
BSL 22 Non-Korean Championship
SCTL 2026 Spring
RSL Revival: Season 5
2026 GSL S1
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2

Upcoming

Escore Tournament S2: W7
YSL S3
Escore Tournament S2: W8
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
2026 GSL S2
BLAST Bounty Summer 2026: Closed Qualifier
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.