most similar (and dissimilar) events

Spencer131

Veteran
Joined
Feb 16, 2016
Messages
527
WCA ID
2017CHUB02
why does event similarity matter?
event similarity should be considered in the debate of adding and removing events. if events are super similar, then they can be repetitive and redundant. to make competitions more fun and fair, we should have a diverse set of events

how can we measure event similarity?
in this post, I measure event similarity by looking at the rankings. if people have similar rankings across events, then I consider those events to be similar to each other

I did this by using the python programming language and the pandas library. I loaded everybody's ranking for each event into a dataframe, and only took people who have competed in every event. at the time of writing, this left 555 people.

I also divided everybody's rank by the maximum rank to normalize the data. normalization is needed because, for example, rank 100 is 3x3 is much better than rank 100 in 5bld

then, I loaded the ranks into a dataframe and used the corr function to compute the correlation between events

10 most similar events
here are the 10 most similar events with the correlation coefficient
  • 777, 666, 0.956
  • 444, 555, 0.930
  • 555, 666, 0.926
  • 555, 777, 0.882
  • 444bf, 555bf, 0.881
  • 333, 444, 0.872
  • 444, 666, 0.834
  • minx, 555, 0.827
  • 333oh, 444, 0.822
  • 333, 333oh, 0.814

10 least similar events
here are the 10 least similar events with their correlation coefficient
  • 333mbf, 666, 0.123
  • 333mbf, 555, 0.122
  • 333oh, 555bf, 0.116
  • 555bf, clock, 0.111
  • 555bf, 777, 0.109
  • 333mbf, minx, 0.103
  • 333, 555bf, 0.099
  • 555bf, 222, 0.093
  • skewb, 555bf, 0.089
  • 777, 333mbf, 0.088
  • pyram, 555bf, 0.053
 
in conclusion, get rid of 6x6 and 7x7

jokes aside, you could've taken everyone's times, then ignored the missing values in the correlation calculation. I think pandas corr does this automatically. This will give you a much bigger population size per event pair.
actually you might be able to do this in their SQL explorer directly, if it has correlation function support
 
Last edited:
Could it be possible to do this for each event? Like the most similar event to 2x2 could be found or something
222, 444, 0.694
222, pyram, 0.680
222, 333oh, 0.661
222, skewb, 0.648
222, 333, 0.601
222, 555, 0.587
222, minx, 0.579
222, sq1, 0.501
222, clock, 0.493
222, 666, 0.462
222, 333fm, 0.406
222, 777, 0.399
222, magic, 0.383
222, 333mbo, 0.328
222, 333ft, 0.314
222, mmagic, 0.302
222, 333bf, 0.267
222, 333mbf, 0.187
222, 444bf, 0.186
222, 555bf, 0.085

in conclusion, get rid of 6x6 and 7x7
I would also argue 5bld

jokes aside, you could've taken everyone's times, then ignored the missing values in the correlation calculation. I think pandas corr does this automatically.
good point! I'll change it to do it that way
 
222, 444, 0.694
222, pyram, 0.680
222, 333oh, 0.661
222, skewb, 0.648
222, 333, 0.601
222, 555, 0.587
222, minx, 0.579
222, sq1, 0.501
222, clock, 0.493
222, 666, 0.462
222, 333fm, 0.406
222, 777, 0.399
222, magic, 0.383
222, 333mbo, 0.328
222, 333ft, 0.314
222, mmagic, 0.302
222, 333bf, 0.267
222, 333mbf, 0.187
222, 444bf, 0.186
222, 555bf, 0.085


I would also argue 5bld


good point! I'll change it to do it that way
Wow, if I was to guess which event were most similar with 2x2, my first-fifth guesses would definitely not be 4x4, but ig it kinda makes sense?
 
Back
Top