[EM] Preliminary Droop-fit proportionality results

Toby Pereira tdp201b at yahoo.co.uk
Sat May 30 09:07:08 PDT 2026


 Some interesting results. I'm not really that knowledgeable on how the different STV methods all philosophically differ from each other, but it is interesting how Schulze STV doesn't not perform that brilliantly here. So it seems that QPQ and Meek/Warren are better when it comes to "optimal" PR (for some definition of optimal anyway) rather than strategy-resistance.
I'm not at all surprised that Harmonic voting does better than Psi. I always felt Psi was "wrong" and in need of repair. Harmonic voting does that repair. Thiele-based methods can still go wrong in some cases if you don't have unlimited clones, but I don't think the way your opinion space has been defined would show this - which isn't a criticism by the way.
For a cardinal-based definition of PR, I think it's unlikely you could do much better than Harmonic voting with this sort of simulation. The COWPEA / COWPEA Lottery method doesn't have a known sensible deterministic counterpart, and that's the only other cardinal PR philosophy that I consider to be robustly good (in a theoretical, as opposed to practical, way). One way to test the two philosophies against each other would be to use the lottery form of both in a simulation with many elected candidates and compare the differences.
Toby
    On Saturday, 30 May 2026 at 16:32:05 BST, Kristofer Munsterhjelm via Election-Methods <election-methods at lists.electorama.com> wrote:  
 
 So I implemented a quick version of a spatial Droop proportionality measure:

The voters are drawn from a standard normal over a 1D opinion space, and 
the candidates are drawn either from the same standard normal or a 
uniform distribution (odd iterations use one, even iterations use the 
other).[1] Each voter ranks the candidates in distance (and rates them 
according to negative distance).

The "ideal" kth candidate is the k/(s+1)th quantile of the (drawn) voter 
distribution; the error is then the square root of the sum of squares 
between each ideal kth candidate and the kth candidate actually elected 
(in order from leftmost to rightmost).

So, for instance, if it's a two-candidate election and the voters' 
quantiles are -0.43 and +0.43, and method X elects candidates who are at 
-0.27 and +0.34 respectively. Then the error for method X in that 
election is the Euclidean distance between (-0.43, 0.43) and (-0.27, 
0.34) ~= 0.184.[2]

I then calculated the VSE over this measure with 4096 voters, 10 
candidates, and different numbers of seats. Here are some results with 
some comments afterwards.

Note that a bad result (low VSE) only gives an indication that the 
method doesn't select candidates close to the Droop quantiles, but not 
*why*. It doesn't distinguish between that happening because the method 
has a different notion of proportionality, or because it has no such 
notion and is all over the place.

(I'd like to implement something that determines what that notion of 
proportionality is if there is one. But I should read Ryan's post more 
thoroughly before I do that.)

2 seats:
Name                            VSE
Log-penalty voting              -1.47
Random ballots                  0.29
Isoelastic (r=1)                0.32
Isoelastic (r=10)                0.37
Schulze STV                      0.45
SNTV                            0.46
QPQ (0.01)                      0.47
Psi voting (delta=0)            0.52
Psi voting (Sainte-Laguë)        0.55
Psi voting (d'Hondt)            0.56
QPQ (Sainte-Laguë)              0.59
Isoelastic (r=2)                0.64
(Bloc) Normalized 0-20 Range    0.65
(Bloc) Borda                    0.68
PSC-CLE                          0.72
QPQ (d'Hondt)                    0.79
Meek/Warren STV                  0.80
STV                              0.80
STV-ME(Schulze)                  0.80
Harmonic voting (delta=0.02)    0.80
Harmonic voting (d'Hondt)        0.87
Harmonic voting (Sainte-Laguë)  0.93

5 seats:
Name                            VSE
Log-penalty voting              -1.36
Isoelastic (r=10)              -0.30
Schulze STV                      0.21
QPQ (0.01)                      0.32
Isoelastic (r=1)                0.36
Psi voting (delta=0)            0.39
Random ballots                  0.38
Psi voting (Sainte-Laguë)        0.40
Psi voting (d'Hondt)            0.41
(Bloc) Normalized 0-20 Range    0.44
Isoelastic (r=2)                0.44
(Bloc) Borda                    0.49
Harmonic voting (delta=0.02)    0.59
SNTV                            0.67
Harmonic voting (d'Hondt)        0.76
PSC-CLE                          0.81
QPQ (Sainte-Laguë)              0.83
Harmonic voting (Sainte-Laguë)  0.89
STV                              0.94
QPQ (d'Hondt)                    0.94
Meek/Warren STV                  0.94
STV-ME(Schulze)                  0.96

9 seats:
Name                            VSE
Log-penalty voting              -0.70
Schulze STV                      0.00
Isoelastic (r=10)                0.10
Isoelastic (r=1)                0.19
Random ballots                  0.41
SNTV                            0.57
Harmonic voting (delta=0.02)    0.57
QPQ (0.01)                      0.57
Isoelastic (r=2)        0.71
(Bloc) Normalized 0-20 Range    0.71
(Bloc) Borda                    0.81
Psi voting (d'Hondt)            0.82
Psi voting (Sainte-Laguë)        0.82
Psi voting (delta=0)            0.83
Harmonic voting (d'Hondt)        0.90
QPQ (Sainte-Laguë)              0.91
PSC-CLE                          0.92
Harmonic voting (Sainte-Laguë)  0.95
STV                              0.98
STV-ME(Schulze)                  0.98
QPQ (d'Hondt)                    0.998
Meek/Warren STV                  0.998

("Random ballots" is the method where one repeatedly picks a random 
voter and elects their favorite continuing candidate.)

The most surprising part, to me, is the bad fit of Schulze STV and how 
little IRV's problems seem to generalize to STV, at least by this 
measure. It's also a bit surprising that for most tunable methods, 
d'Hondt does better than Sainte-Laguë, but for Harmonic the opposite is 
true.

Harmonic seems to do better than Psi, just as it did in the my earlier 
simulations.

In retrospect, it's not that surprising that Harmonic is beaten by 
ranked methods because it doesn't optimize the same thing (just like 
single-winner Range has a different objective than majority rule).

If I were to guess, I'd imagine that there is some kind of property 
that, if passed, leads to good performance here; and STV passes its due 
to the way it works, but Schulze STV doesn't because it was designed 
primarily to be strategy-resistant. But that's just a guess.

-km

[1] My point with doing this was to penalize methods that just make 
assumptions about the voter distribution from the candidate distribution 
or vice versa.

[2] Ideally, the error measure should be designed to generalize to 
something like the Sainte-Laguë index in the party list case, but I just 
chose something easy and broadly reasonable here.
----
Election-Methods mailing list - see https://electorama.com/em for list info
  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.electorama.com/pipermail/election-methods-electorama.com/attachments/20260530/05d9bf1e/attachment.htm>


More information about the Election-Methods mailing list