[Election-Methods] Linear Spectrum MMPD analysis: STV-CLE
Dan Bishop
danbishop04 at gmail.com
Sun Dec 30 22:15:15 PST 2007
This is a rather slow-to-compute method, so I won't be doing millions of
simulations. In fact, I'll only be using one ballot set (with 100
candidates):
1 seat: Winner is at position 0.49847145579341479 (~1/2)
2 seats: Winners are at positions 0.3215501867015067 (~1/3),
0.66554092474796411 (~2/3)
3 seats: Winners are at positions 0.25441650058403775 (~1/4),
0.49847145579341479 (~1/2), 0.75932728802487404 (~3/4)
Note how closely the results approximate the set {i / (n + 1): i in {1,
2, ... n}}. This is easy to explain if you take a look at the
eliminations during an STV-CLE count. Assuming a large enough number of
candidates that nobody gets a quota, candidates are eliminated from the
ends of the spectrum until one candidate just barely meets quota. That
candidate is elected and the process starts again. Or, in Python:
def stvcle_winners(num_candidates, quota):
winners = []
candidates_left = num_candidates
left_pos = 0
right_pos = 1
while candidates_left > 0:
left_pos += quota
right_pos -= quota
if left_pos > 0.5:
break
if candidates_left == 1:
winners.append(random.choice([left_pos, right_pos]))
else:
winners.append(left_pos)
winners.append(right_pos)
candidates_left -= 2
for _ in xrange(candidates_left):
winners.append(0.5)
return sorted(winners)
With quota=1/(seats + 1) (H-B or Droop), the MMPD is
1 seat: 0.25 (1/4)
2 seats: 0.13888888888888887 (5/36)
3 seats: 0.09375 (3/32)
4 seats: 0.070000000000000007 (7/100)
5 seats: 0.055555555555555552 (1/18)
6 seats: 0.045918367346938771 (9/196)
7 seats: 0.0390625 (5/128)
8 seats: 0.033950617283950622 (11/324)
9 seats: 0.029999999999999999 (3/100)
10 seats: 0.026859504132231406 (13/484)
11 seats: 0.024305555555555552 (7/288)
12 seats: 0.022189349112426031 (15/676)
13 seats: 0.020408163265306117 (1/49)
14 seats: 0.018888888888888893 (17/900)
15 seats: 0.017578125 (9/512)
16 seats: 0.016435986159169556 (19/1156)
17 seats: 0.015432098765432096 (5/324)
18 seats: 0.014542936288088643 (21/1444)
19 seats: 0.01375 (11/800)
20 seats: 0.013038548752834469 (23/1764)
21 seats: 0.012396694214876028 (3/242)
22 seats: 0.011814744801512287 (25/2116)
23 seats: 0.011284722222222219 (13/1152)
24 seats: 0.010800000000000006 (27/2500)
Or, more generally, (s+3) / (4 (s + 1)²), where s is the number of seats.
For the Hare quota (1 / seats), we have:
1 seats: 0.25 (1/4)
2 seats: 0.25 (1/4)
3 seats: 0.12499999999999997 (1/8)
4 seats: 0.09375 (3/32)
5 seats: 0.065000000000000002 (13/200)
6 seats: 0.055555555555555539 (1/18)
7 seats: 0.043367346938775496 (17/392)
8 seats: 0.0390625 (5/128)
9 seats: 0.032407407407407413 (7/216)
10 seats: 0.029999999999999992 (3/100)
11 seats: 0.025826446280991743 (25/968)
12 seats: 0.024305555555555546 (7/288)
13 seats: 0.021449704142011826 (29/1352)
14 seats: 0.020408163265306103 (1/49)
15 seats: 0.018333333333333333 (11/600)
16 seats: 0.017578125 (9/512)
17 seats: 0.016003460207612463 (37/2312)
18 seats: 0.015432098765432096 (5/324)
19 seats: 0.014196675900277001 (41/2888)
20 seats: 0.01374999999999999 (11/800)
21 seats: 0.012755102040816334 (5/392)
22 seats: 0.012396694214876028 (3/242)
23 seats: 0.011578449905482038 (49/4232)
24 seats: 0.01128472222222221 (13/1152)
which is (2s + 3) / (8s²) for an odd number of seats (except for s=1) or
(s + 2) / (4s²) for an even number of seats. Also, for odd numbers of
seats, there will always be one at position 0.5, and for an even number
of seats, there will be TWO at position 0.5.
And for the Imperiali quota (1 / (seats + 2)):
1 seats: 0.27777777777777779 (5/18)
2 seats: 0.125 (1/8)
3 seats: 0.089999999999999997 (9/100)
4 seats: 0.069444444444444448 (5/72)
5 seats: 0.056122448979591844 (11/196)
6 seats: 0.046875 (3/64)
7 seats: 0.040123456790123448 (13/324)
8 seats: 0.035000000000000003 (7/200)
9 seats: 0.030991735537190073 (15/484)
10 seats: 0.027777777777777769 (1/36)
11 seats: 0.025147928994082844 (17/676)
12 seats: 0.022959183673469392 (9/392)
13 seats: 0.021111111111111119 (19/900)
14 seats: 0.01953125 (5/256)
15 seats: 0.018166089965397925 (21/1156)
16 seats: 0.016975308641975297 (11/648)
17 seats: 0.015927977839335191 (23/1444)
18 seats: 0.014999999999999987 (3/200)
19 seats: 0.014172335600907016 (25/1764)
20 seats: 0.013429752066115703 (13/968)
21 seats: 0.012759924385633278 (27/2116)
22 seats: 0.01215277777777778 (7/576)
23 seats: 0.011599999999999999 (29/2500)
24 seats: 0.011094674556213026 (15/1352)
which is (s + 6) / (4 (s+2)²), except for s=1.
This raises the question, "What's the optimal quota?"
1 seat: any quota of 1/2 or higher -> MMPD = 1/4
2 seats: quota = 1/4 -> MMPD = 1/8
3 seats: quota = 3/14 -> MMPD = 5/56
4 seats: quota = 2/11 -> MMPD = 3/44
5 seats: quota = 5/32 -> MMPD = 7/128
6 seats: quota = 3/22 -> MMPD = 1/22
7 seats: quota = 7/58 -> MMPD = 9/232
8 seats: quota = 4/37 -> MMPD = 5/148
9 seats: quota = 9/92 -> MMPD = 11/368
10 seats: quota = 5/56 -> MMPD = 3/112
11 seats: quota = 11/134 -> MMPD = 13/536
12 seats: quota = 6/79 -> MMPD = 7/316
13 seats: quota = 13/184 -> MMPD = 15/736
14 seats: quota = 7/106 -> MMPD = 1/53
15 seats: quota = 15/242 -> MMPD = 17/968
16 seats: quota = 8/137 -> MMPD = 9/548
In general, the optimal quota is s / (s² + s + 2) = 1 / (s + 1 + 2/s),
except when s=1. Note that this is slightly smaller than the Droop or
H-B quota. I'd recommend using 1 / (s + 1) instead for all of the usual
reasons. Plus, it makes the winners nicely equally-spaced.
More information about the Election-Methods
mailing list