<div dir="auto">Thank you for sharing these Kristofer,<div dir="auto"><br></div><div dir="auto">Always a pleasure to see one's biases reinforced by independent sources, with such a total Warren/Meek STV victory over Schultze. If only Warren had outdone Meek, this would have been perfect.</div><div dir="auto"><br></div><div dir="auto">Best regards,</div><div dir="auto"><br></div><div dir="auto">Etjon</div><div dir="auto"><br></div><div dir="auto">The only thing th</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sun, 31 May 2026, 1:31 am Kristofer Munsterhjelm via Election-Methods, <<a href="mailto:election-methods@lists.electorama.com">election-methods@lists.electorama.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">So I implemented a quick version of a spatial Droop proportionality measure:<br>
<br>
The voters are drawn from a standard normal over a 1D opinion space, and <br>
the candidates are drawn either from the same standard normal or a <br>
uniform distribution (odd iterations use one, even iterations use the <br>
other).[1] Each voter ranks the candidates in distance (and rates them <br>
according to negative distance).<br>
<br>
The "ideal" kth candidate is the k/(s+1)th quantile of the (drawn) voter <br>
distribution; the error is then the square root of the sum of squares <br>
between each ideal kth candidate and the kth candidate actually elected <br>
(in order from leftmost to rightmost).<br>
<br>
So, for instance, if it's a two-candidate election and the voters' <br>
quantiles are -0.43 and +0.43, and method X elects candidates who are at <br>
-0.27 and +0.34 respectively. Then the error for method X in that <br>
election is the Euclidean distance between (-0.43, 0.43) and (-0.27, <br>
0.34) ~= 0.184.[2]<br>
<br>
I then calculated the VSE over this measure with 4096 voters, 10 <br>
candidates, and different numbers of seats. Here are some results with <br>
some comments afterwards.<br>
<br>
Note that a bad result (low VSE) only gives an indication that the <br>
method doesn't select candidates close to the Droop quantiles, but not <br>
*why*. It doesn't distinguish between that happening because the method <br>
has a different notion of proportionality, or because it has no such <br>
notion and is all over the place.<br>
<br>
(I'd like to implement something that determines what that notion of <br>
proportionality is if there is one. But I should read Ryan's post more <br>
thoroughly before I do that.)<br>
<br>
2 seats:<br>
Name VSE<br>
Log-penalty voting -1.47<br>
Random ballots 0.29<br>
Isoelastic (r=1) 0.32<br>
Isoelastic (r=10) 0.37<br>
Schulze STV 0.45<br>
SNTV 0.46<br>
QPQ (0.01) 0.47<br>
Psi voting (delta=0) 0.52<br>
Psi voting (Sainte-Laguë) 0.55<br>
Psi voting (d'Hondt) 0.56<br>
QPQ (Sainte-Laguë) 0.59<br>
Isoelastic (r=2) 0.64<br>
(Bloc) Normalized 0-20 Range 0.65<br>
(Bloc) Borda 0.68<br>
PSC-CLE 0.72<br>
QPQ (d'Hondt) 0.79<br>
Meek/Warren STV 0.80<br>
STV 0.80<br>
STV-ME(Schulze) 0.80<br>
Harmonic voting (delta=0.02) 0.80<br>
Harmonic voting (d'Hondt) 0.87<br>
Harmonic voting (Sainte-Laguë) 0.93<br>
<br>
5 seats:<br>
Name VSE<br>
Log-penalty voting -1.36<br>
Isoelastic (r=10) -0.30<br>
Schulze STV 0.21<br>
QPQ (0.01) 0.32<br>
Isoelastic (r=1) 0.36<br>
Psi voting (delta=0) 0.39<br>
Random ballots 0.38<br>
Psi voting (Sainte-Laguë) 0.40<br>
Psi voting (d'Hondt) 0.41<br>
(Bloc) Normalized 0-20 Range 0.44<br>
Isoelastic (r=2) 0.44<br>
(Bloc) Borda 0.49<br>
Harmonic voting (delta=0.02) 0.59<br>
SNTV 0.67<br>
Harmonic voting (d'Hondt) 0.76<br>
PSC-CLE 0.81<br>
QPQ (Sainte-Laguë) 0.83<br>
Harmonic voting (Sainte-Laguë) 0.89<br>
STV 0.94<br>
QPQ (d'Hondt) 0.94<br>
Meek/Warren STV 0.94<br>
STV-ME(Schulze) 0.96<br>
<br>
9 seats:<br>
Name VSE<br>
Log-penalty voting -0.70<br>
Schulze STV 0.00<br>
Isoelastic (r=10) 0.10<br>
Isoelastic (r=1) 0.19<br>
Random ballots 0.41<br>
SNTV 0.57<br>
Harmonic voting (delta=0.02) 0.57<br>
QPQ (0.01) 0.57<br>
Isoelastic (r=2) 0.71<br>
(Bloc) Normalized 0-20 Range 0.71<br>
(Bloc) Borda 0.81<br>
Psi voting (d'Hondt) 0.82<br>
Psi voting (Sainte-Laguë) 0.82<br>
Psi voting (delta=0) 0.83<br>
Harmonic voting (d'Hondt) 0.90<br>
QPQ (Sainte-Laguë) 0.91<br>
PSC-CLE 0.92<br>
Harmonic voting (Sainte-Laguë) 0.95<br>
STV 0.98<br>
STV-ME(Schulze) 0.98<br>
QPQ (d'Hondt) 0.998<br>
Meek/Warren STV 0.998<br>
<br>
("Random ballots" is the method where one repeatedly picks a random <br>
voter and elects their favorite continuing candidate.)<br>
<br>
The most surprising part, to me, is the bad fit of Schulze STV and how <br>
little IRV's problems seem to generalize to STV, at least by this <br>
measure. It's also a bit surprising that for most tunable methods, <br>
d'Hondt does better than Sainte-Laguë, but for Harmonic the opposite is <br>
true.<br>
<br>
Harmonic seems to do better than Psi, just as it did in the my earlier <br>
simulations.<br>
<br>
In retrospect, it's not that surprising that Harmonic is beaten by <br>
ranked methods because it doesn't optimize the same thing (just like <br>
single-winner Range has a different objective than majority rule).<br>
<br>
If I were to guess, I'd imagine that there is some kind of property <br>
that, if passed, leads to good performance here; and STV passes its due <br>
to the way it works, but Schulze STV doesn't because it was designed <br>
primarily to be strategy-resistant. But that's just a guess.<br>
<br>
-km<br>
<br>
[1] My point with doing this was to penalize methods that just make <br>
assumptions about the voter distribution from the candidate distribution <br>
or vice versa.<br>
<br>
[2] Ideally, the error measure should be designed to generalize to <br>
something like the Sainte-Laguë index in the party list case, but I just <br>
chose something easy and broadly reasonable here.<br>
----<br>
Election-Methods mailing list - see <a href="https://electorama.com/em" rel="noreferrer noreferrer" target="_blank">https://electorama.com/em</a> for list info<br>
</blockquote></div>