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