Re: [EM] real world 9-winner election using RRV

2011-06-25 Thread Kristofer Munsterhjelm

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-06-25 Thread Jameson Quinn
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

2011-06-25 Thread Warren Smith
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

2011-06-25 Thread Kristofer Munsterhjelm

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-06-25 Thread Jameson Quinn
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

2011-06-25 Thread Kristofer Munsterhjelm

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-06-25 Thread Jameson Quinn
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

2011-06-25 Thread Warren Smith
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

2011-06-25 Thread Juho Laatu
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

2011-06-25 Thread Warren Smith
  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

2011-06-25 Thread Jameson Quinn
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