I'm resending the message I sent to Kristofer because I think it's generally interesting. I redid the formula for an STV-like Range-based proportional system, and it's actually simpler than my previous (totally broken) formula. When electing candidate A, just multiply all the ballots by 1-r(A)D/S(A)(unless it's negative), where r(A) = ballot score for candidate A D = Droop quota S(A) = Sum of squares of scores for candidate A
(detail - you need to either normalize the scores to [0,1], or multiply the droop quota by the top allowed score) Note that my (still unpublished) summability trick can summably give results which are the same as this method with a high probability. (I developed the summability trick for approval ballots, but to use it for Range, you just divvy up the ballot into approval-style "slices" which approve all candidates which score higher than a given total. For instance, in range(3), A3 B1 C0 would be equivalent to 2 (A) ballots and one (AB) ballot.) Kristofer - have you been able to get results for this formula? If you send me the source code, I can try myself. JQ ---------- Forwarded message ---------- From: Jameson Quinn <[email protected]> Date: 2010/6/8 Subject: Re: [EM] Preliminary Range PAV results To: Kristofer Munsterhjelm <[email protected]> 2010/6/8 Kristofer Munsterhjelm <[email protected]> > Jameson Quinn wrote: > >> OK, I think there's a bug in this formula. Can you try >> max(0,(R/M-D(rN/R))/N)? M is the maximum Range vote (1, 99, 100, whatever); >> the minimum is 0. >> > > If you have > 10: A (0.9) > B (0.5) > C (0.1) <- set a > 5: B (0.7) > C (0.3) > A (0.2) <- set b > > and you're calculating the weighting for set a, is N 10 or is it 15? > Thanks for giving me a concrete example. It inspired me to work the formula out again from the top. I'm sorry, I should not try to do it in my head. Normalize all scores to [0,1] for notational simplicity. Define S as the sum of the squares of the scores. S/R is the average score, weighted by support. For instance, if there are two groups x and y, which rate the given candidate at s and 0, then the weight of group y is 0, so S/R = s, independent of the group sizes. Formula: *w = max(0,1-rD/S)* D->0, w->1, check. r->0, w->1, check for any p, D->pR and r->S/R, w ->1-p, check. This is the formula I want. The only problem is that it might fail to take a full droop quota, even though one exists, because it is forbidden from going negative. This can only happen if D > S, or, more intuitively, D/R > S/R, that is, the ratio of the droop quota to the range total is above the average supporter's support. In your example, for candidate A, set a, 2 candidates to be elected, R=10 S=10*.81+5*.04=8.3 D=15/(2+1)=5 r=0.9 factor = .458. rescored a group A total, 4.120482 For voter set b, the rescored A total is .879518 New A total = 5 = R-D JQ ps. Maybe you should share your source code on Sourceforge or Google Code or the like, so we could add our own systems?
---- Election-Methods mailing list - see http://electorama.com/em for list info
