Re: [EM] real world 9-winner election using RRV
Warren Smith wrote: I was contacted by a prestigious musical group to help them hold an election. The election data and results (pending rechecking comments by you all) in anonymized form, are here: http://RangeVoting.org/June2011RealWorldRRVvotes.txt Feel free to run your favorite alternative multiwinner election methods on same data report the results. I used RRV, http://rangevoting.org/RRV.html So I quickly hacked together something to run it through my old multiwinner code, but I'm getting unusual results. Could someone check that they get what I'm getting? {C101 C102 C103 C104 C105 C106 C108 C109 C110} for birational voting {C101 C102 C103 C104 C105 C106 C108 C109 C110} for Range PAV (integral) {C101 C102 C103 C105 C106 C108 C109 C110 C116} for STV {C103 C106 C108 C109 C110 C111 C113 C115 C116} for Meek STV {C103 C106 C109 C110 C111 C113 C114 C115 C116} for Schulze STV {C103 C106 C109 C110 C111 C113 C114 C115 C116} for QPQ where Range PAV (integral) is like PAV, but each rating is counted as a fraction of an approval. See http://lists.electorama.com/pipermail/election-methods-electorama.com/2010-May/026425.html Sainte-Laguë or D'Hondt doesn't matter for this election, it seems. If it seems to be right, I'll give the results for a bunch of other methods, too. According to the program, the reduction of the ratings to ranked ballots is: 1: C113 = C109 = C108 = C102 C106 C110 = C101 C112 = C105 C114 = C111 = C104 C107 C103 C116 = C115 1: C116 = C115 = C113 = C104 = C102 C111 = C110 = C103 = C101 C106 C107 C109 C112 C114 = C108 = C105 1: C113 = C112 = C108 = C106 = C105 = C102 C110 C101 C116 = C104 C109 = C107 C115 = C114 = C111 = C103 1: C106 C105 = C103 = C101 C110 = C104 = C102 C109 = C108 C116 = C114 = C113 C112 = C111 C107 C115 1: C116 = C111 = C108 = C107 = C104 = C103 C109 = C106 = C102 = C101 C110 C114 C112 C113 C105 C115 1: C113 = C109 = C108 = C107 = C106 = C104 = C101 C116 = C115 = C114 = C112 = C111 = C110 = C105 = C103 = C102 1: C106 = C103 = C102 C110 = C109 = C105 = C101 C114 = C107 = C104 C116 C115 C112 C113 1: C110 = C109 = C106 = C105 = C103 C115 C114 = C111 = C102 C116 = C107 = C101 C108 C112 C113 = C104 1: C115 = C109 = C106 = C105 = C101 C110 C116 = C114 = C107 = C102 C111 = C104 C108 = C103 C113 C112 1: C114 = C111 = C110 = C109 = C106 = C103 = C102 = C101 C107 C112 C108 C116 = C115 = C113 = C105 1: C110 = C109 = C105 = C104 = C101 C115 = C114 = C113 = C108 = C107 = C103 C112 = C106 C102 1: C116 = C107 = C106 = C103 = C102 = C101 C108 C104 C115 = C114 = C110 = C109 C112 C113 = C105 1: C115 = C108 = C104 = C101 C107 = C106 = C103 = C102 C105 C114 = C113 = C111 = C110 = C109 C116 = C112 1: C110 = C108 = C102 C115 = C113 = C112 = C109 = C107 = C106 = C105 1: C103 C106 = C101 C114 = C111 = C105 = C104 C110 = C102 C116 C108 C115 = C113 = C109 = C107 C112 1: C106 = C101 C110 = C109 = C103 C116 C108 = C102 C114 = C105 = C104 C113 = C112 = C107 C111 C115 1: C115 = C105 C101 C102 C106 = C103 C107 C109 C114 = C104 C108 C116 = C113 = C112 = C110 1: C116 = C115 = C114 = C110 = C109 = C108 = C107 C106 C111 = C102 = C101 C104 C103 C113 = C112 C105 1: C111 = C110 = C109 = C108 = C106 = C105 = C102 = C101 C116 = C112 = C104 = C103 C115 = C113 C114 = C107 1: C111 = C109 = C106 = C105 = C103 C102 C108 C110 C101 C116 = C115 = C113 = C112 C107 = C104 C114 1: C110 = C103 = C101 C109 = C106 = C105 = C102 C116 = C111 = C108 = C107 C114 = C112 = C104 C115 C113 1: C103 C112 = C102 C116 = C115 = C111 = C106 C110 = C109 = C107 C105 = C104 C113 = C108 C114 = C101 1: C110 = C108 = C106 = C104 = C102 C101 C103 C112 = C111 C113 C116 = C115 = C114 = C109 = C107 = C105 1: C110 = C106 = C102 = C101 1: C109 C111 = C106 = C105 = C103 C107 = C102 = C101 C116 = C112 = C110 = C108 C115 C114 = C113 = C104 1: C116 = C109 = C107 = C106 = C102 = C101 C108 = C104 C115 = C114 = C113 = C112 = C111 = C110 = C105 = C103 1: C110 = C106 = C105 = C102 C109 = C103 = C101 C108 = C104 C113 = C112 C116 C111 C114 = C107 C115 1: C111 = C109 = C108 = C107 C116 = C103 C102 C114 = C113 = C110 = C106 C104 C112 C101 C115 = C105 1: C110 = C105 = C104 = C102 = C101 C116 = C113 = C106 = C103 C114 = C109 = C108 C115 = C107 C112 1: C116 = C109 = C108 = C106 = C103 C102 = C101 C107 C111 = C110 = C105 C115 = C114 = C113 = C112 = C104 1: C113 = C111 = C109 = C108 = C107 = C105 = C104 = C102 = C101 C116 = C115 = C114 = C112 = C110 = C106 = C103 1: C110 = C109 = C106 = C105 = C103 = C102 = C101 C108 C116 = C111 = C107 = C104 C114 = C112 C113 C115 1: C114 C108 C116 = C110 = C109 = C107 = C106 = C102 C112 C105 1: C114 = C102 C101 C104 C115 = C112 = C105 C116 = C103 C113 1: C115 = C112 = C109 = C106 = C105 = C102 = C101 1: C106 C103 = C102 C116 = C109 = C108 C114 = C111 = C110 = C101 C115 C112 C113 = C105 1: C115 = C111 =
Re: [EM] real world 9-winner election using RRV
2011/6/25 Kristofer Munsterhjelm km_el...@lavabit.com Warren Smith wrote: I was contacted by a prestigious musical group to help them hold an election. The election data and results (pending rechecking comments by you all) in anonymized form, are here: http://RangeVoting.org/**June2011RealWorldRRVvotes.txthttp://RangeVoting.org/June2011RealWorldRRVvotes.txt Feel free to run your favorite alternative multiwinner election methods on same data report the results. I used RRV, http://rangevoting.org/RRV.**html http://rangevoting.org/RRV.html So I quickly hacked together something to run it through my old multiwinner code, but I'm getting unusual results. Could someone check that they get what I'm getting? {C101 C102 C103 C104 C105 C106 C108 C109 C110} for birational voting {C101 C102 C103 C104 C105 C106 C108 C109 C110} for Range PAV (integral) {C101 C102 C103 C105 C106 C108 C109 C110 C116} for STV {C103 C106 C108 C109 C110 C111 C113 C115 C116} for Meek STV {C103 C106 C109 C110 C111 C113 C114 C115 C116} for Schulze STV {C103 C106 C109 C110 C111 C113 C114 C115 C116} for QPQ How are you handling ties in the STV methods? Just eyeballing it, it seems that your results are skewing towards the high-numbered candidates (who, in this election, seem to be weaker candidates - perhaps the ordering is in the order that they submitted statements, so the least-organized candidates come last?). And when I look at your ranked inferences, you do indeed put the highest-numbered candidate first, so I'm wondering if you're actually (mistakenly?) using lexically-last as an arbitrary tiebreaker for ballot equalities. Again, that's just from eyeballing, so I could be wrong. Jameson Election-Methods mailing list - see http://electorama.com/em for list info
Re: [EM] real world 9-winner election using RRV
If you have a loop like for(i=1 to C) if(x[i]best}{ best=x[i]; ibest=i; } then you will find the maximum x[] but breaking ties always by choosing the maximum index i. However, you can pre-prepare a random permutation of {1,2,...,C} as follows for(i=1 to C) p[i]=i; for(i=C down to 2){ t=random integer from 1 to i; swap(p[i], p[t]); } and then the original loop can be replaced by for(i=1 to C) if(x[p[i]]best}{ best=x[p[i]]; ibest=p[i]; } in which case all ties are broken randomly. It is probably best to regenerate a new random permutation p[] every time you do stuff, don't re-use old p[]. This kind of thing is very important in many kinds of election simulations because biased-tie-breaking in many simulations can completely throw your statistics off. If in the present election you run STV (say) then you really should run STV many times with different random numbers each run, and report the statistics of the results. -- Warren D. Smith http://RangeVoting.org -- add your endorsement (by clicking endorse as 1st step) and math.temple.edu/~wds/homepage/works.html Election-Methods mailing list - see http://electorama.com/em for list info
Re: [EM] real world 9-winner election using RRV
Jameson Quinn wrote: 2011/6/25 Kristofer Munsterhjelm km_el...@lavabit.com mailto:km_el...@lavabit.com So I quickly hacked together something to run it through my old multiwinner code, but I'm getting unusual results. Could someone check that they get what I'm getting? {C101 C102 C103 C104 C105 C106 C108 C109 C110} for birational voting {C101 C102 C103 C104 C105 C106 C108 C109 C110} for Range PAV (integral) {C101 C102 C103 C105 C106 C108 C109 C110 C116} for STV {C103 C106 C108 C109 C110 C111 C113 C115 C116} for Meek STV {C103 C106 C109 C110 C111 C113 C114 C115 C116} for Schulze STV {C103 C106 C109 C110 C111 C113 C114 C115 C116} for QPQ How are you handling ties in the STV methods? Just eyeballing it, it seems that your results are skewing towards the high-numbered candidates (who, in this election, seem to be weaker candidates - perhaps the ordering is in the order that they submitted statements, so the least-organized candidates come last?). And when I look at your ranked inferences, you do indeed put the highest-numbered candidate first, so I'm wondering if you're actually (mistakenly?) using lexically-last as an arbitrary tiebreaker for ballot equalities. Again, that's just from eyeballing, so I could be wrong. I thought I was using the method of first difference as a tiebreak, but apparently not. That method breaks the tie in favor of the candidate who first has a higher score. So I made a randomization preround (permuting the candidate-number assignment instead of assigning 0 to C101, 1 to C102 etc), and the results changed: {C101 C102 C103 C104 C105 C106 C108 C109 C110 } for birational voting {C101 C102 C103 C104 C105 C106 C108 C109 C110 } for Range PAV {C101 C102 C103 C104 C105 C106 C108 C109 C110 } for STV {C102 C103 C104 C105 C106 C107 C109 C110 C116 } for Meek STV {C102 C103 C104 C105 C106 C107 C109 C114 C116 } for Schulze STV {C102 C103 C104 C105 C106 C107 C109 C110 C116 } for QPQ, so there seems to be a lot of ties for the ranked methods to deal with. In retrospect, it makes sense, because there weren't enough ratings for voters to be able to rate every candidate uniquely. Well, that's what I get for using old code whose limits I've forgotten, I suppose! Election-Methods mailing list - see http://electorama.com/em for list info
Re: [EM] real world 9-winner election using RRV
2011/6/25 Kristofer Munsterhjelm km_el...@lavabit.com Jameson Quinn wrote: 2011/6/25 Kristofer Munsterhjelm km_el...@lavabit.com mailto: km_el...@lavabit.com So I quickly hacked together something to run it through my old multiwinner code, but I'm getting unusual results. Could someone check that they get what I'm getting? {C101 C102 C103 C104 C105 C106 C108 C109 C110} for birational voting {C101 C102 C103 C104 C105 C106 C108 C109 C110} for Range PAV (integral) {C101 C102 C103 C105 C106 C108 C109 C110 C116} for STV {C103 C106 C108 C109 C110 C111 C113 C115 C116} for Meek STV {C103 C106 C109 C110 C111 C113 C114 C115 C116} for Schulze STV {C103 C106 C109 C110 C111 C113 C114 C115 C116} for QPQ How are you handling ties in the STV methods? Just eyeballing it, it seems that your results are skewing towards the high-numbered candidates (who, in this election, seem to be weaker candidates - perhaps the ordering is in the order that they submitted statements, so the least-organized candidates come last?). And when I look at your ranked inferences, you do indeed put the highest-numbered candidate first, so I'm wondering if you're actually (mistakenly?) using lexically-last as an arbitrary tiebreaker for ballot equalities. Again, that's just from eyeballing, so I could be wrong. I thought I was using the method of first difference as a tiebreak, but apparently not. That method breaks the tie in favor of the candidate who first has a higher score. So I made a randomization preround (permuting the candidate-number assignment instead of assigning 0 to C101, 1 to C102 etc), and the results changed: Wait is that a global randomization, used across all votes? If it is... or in fact, even if it isn't... I suggest you do what Warren suggested, and run it several times, with different random seeds, to see if the results are reasonably stable. {C101 C102 C103 C104 C105 C106 C108 C109 C110 } for birational voting {C101 C102 C103 C104 C105 C106 C108 C109 C110 } for Range PAV {C101 C102 C103 C104 C105 C106 C108 C109 C110 } for STV Heh. As I suspected, STV came up with the same list as AT-TV. {C102 C103 C104 C105 C106 C107 C109 C110 C116 } for Meek STV {C102 C103 C104 C105 C106 C107 C109 C114 C116 } for Schulze STV {C102 C103 C104 C105 C106 C107 C109 C110 C116 } for QPQ, Those results also look much more reasonable to me. so there seems to be a lot of ties for the ranked methods to deal with. In retrospect, it makes sense, because there weren't enough ratings for voters to be able to rate every candidate uniquely. Well, that's what I get for using old code whose limits I've forgotten, I suppose! I know the feeling. Election-Methods mailing list - see http://electorama.com/em for list info
Re: [EM] real world 9-winner election using RRV
Jameson Quinn wrote: Wait is that a global randomization, used across all votes? If it is... or in fact, even if it isn't... I suggest you do what Warren suggested, and run it several times, with different random seeds, to see if the results are reasonably stable. The way my program works, it deals with candidate numbers instead of names. The standard way to map numbers to names is to call the first named candidate 0, the second candidate 1, and so on. What I did was populate an array idx with 0...n, randomly permute it, then the first named candidate is idx[0], the second named candidate is idx[1] and so on. That's a global randomization because the program just sees numbers. If it's being unfair based on the numbers, it won't be unfair based on the candidate names since the mapping has been randomized. I could try reseeding many times, but I'd have to find a way of presenting the outcome. Say, for instance, that we have a multiwinner situation where six candidates are to be elected out of ten. The outcome is so that A and B are always in the result, but then the other four are randomly picked from [C-J] with every combination equally likely. How would I output that result? Printing them all would take a lot of space (8 choose 4 = 70). Should I just pick the outcome that happens most often, and break randomly if there's a tie? Election-Methods mailing list - see http://electorama.com/em for list info
Re: [EM] real world 9-winner election using RRV
2011/6/25 Kristofer Munsterhjelm km_el...@lavabit.com Jameson Quinn wrote: Wait is that a global randomization, used across all votes? If it is... or in fact, even if it isn't... I suggest you do what Warren suggested, and run it several times, with different random seeds, to see if the results are reasonably stable. The way my program works, it deals with candidate numbers instead of names. The standard way to map numbers to names is to call the first named candidate 0, the second candidate 1, and so on. What I did was populate an array idx with 0...n, randomly permute it, then the first named candidate is idx[0], the second named candidate is idx[1] and so on. That's a global randomization because the program just sees numbers. If it's being unfair based on the numbers, it won't be unfair based on the candidate names since the mapping has been randomized. I could try reseeding many times, but I'd have to find a way of presenting the outcome. Say, for instance, that we have a multiwinner situation where six candidates are to be elected out of ten. The outcome is so that A and B are always in the result, but then the other four are randomly picked from [C-J] with every combination equally likely. How would I output that result? Printing them all would take a lot of space (8 choose 4 = 70). Should I just pick the outcome that happens most often, and break randomly if there's a tie? More interesting would be statistics on how many results you got, how common the most-common one was, and similar. (How common the second-most-common one, the median one...) Actually better would be to randomly break the ties on each ballot before feeding it into your algorithm. I suspect that this would be more stable than your global randomization, because there are more potential permutations and thus a greater chance that they cancel each other out. 20-100 runs should be enough to start to get a feel for how stable the results are. (Of course, I don't know how easy that change would be in your program... but if you wanted, I could make and send you a file where I do those permutations 100 times.) JQ Election-Methods mailing list - see http://electorama.com/em for list info
Re: [EM] real world 9-winner election using RRV
The musical group who wanted me to process their election, actually wanted, not a list of 9 winners, but actually an ordering of all 16 candidates, top 9 being the winners. -- Warren D. Smith http://RangeVoting.org -- add your endorsement (by clicking endorse as 1st step) and math.temple.edu/~wds/homepage/works.html Election-Methods mailing list - see http://electorama.com/em for list info
Re: [EM] real world 9-winner election using RRV
Should the order be a proportional order or a best single winner order? I guess both are possible although so far the assumption obviously was proportional set or proportional order. Juho On 26.6.2011, at 1.21, Warren Smith wrote: The musical group who wanted me to process their election, actually wanted, not a list of 9 winners, but actually an ordering of all 16 candidates, top 9 being the winners. -- Warren D. Smith http://RangeVoting.org -- add your endorsement (by clicking endorse as 1st step) and math.temple.edu/~wds/homepage/works.html Election-Methods mailing list - see http://electorama.com/em for list info Election-Methods mailing list - see http://electorama.com/em for list info
Re: [EM] real world 9-winner election using RRV
http://RangeVoting.org/June2011RealWorldRRVvotes.txt now updated some more and mentions JQ KM. Note there is a Condorcet cycle. It seems peculiar if your 9 winners do not include C101. On 6/25/11, Warren Smith warren@gmail.com wrote: The musical group who wanted me to process their election, actually wanted, not a list of 9 winners, but actually an ordering of all 16 candidates, top 9 being the winners. -- Warren D. Smith http://RangeVoting.org -- add your endorsement (by clicking endorse as 1st step) and math.temple.edu/~wds/homepage/works.html -- Warren D. Smith http://RangeVoting.org -- add your endorsement (by clicking endorse as 1st step) and math.temple.edu/~wds/homepage/works.html Election-Methods mailing list - see http://electorama.com/em for list info
Re: [EM] real world 9-winner election using RRV
I added a line to print out the remaining candidates, in decreasing order of remaining reweighted ballots, as soon as all seats were filled. (After first finding that if I actually ran the leftover protocol, it only gave one candidate, because after all the reweighting up to that point, all remaining voters had rated C112 at least 1, or had rated all unelected candidates at 0!) Here are the results: [(2.3733215978628448, 'C112'), (2.2897381094867288, 'C107'), (2.2889828846114861, 'C116'), (2.0589562392103486, 'C114'), (1.9386972538747298, 'C115'), (1.8028994309791222, 'C113'), (1.6913049936093174, 'C111')] So that should be appended to my earlier results to give a full ranking. JQ 2011/6/25 Warren Smith warren@gmail.com The musical group who wanted me to process their election, actually wanted, not a list of 9 winners, but actually an ordering of all 16 candidates, top 9 being the winners. -- Warren D. Smith http://RangeVoting.org -- add your endorsement (by clicking endorse as 1st step) and math.temple.edu/~wds/homepage/works.html Election-Methods mailing list - see http://electorama.com/em for list info