[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