<html><head></head><body><div class="ydp3294a50ayahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div></div>
<div dir="ltr" data-setdir="false">Thanks again for producing all this. One thing I've just realised is that according to this metric, harmonic (and psi) voting continue to get more proportional as you go from D'Hondt to <span>Sainte-Laguë and pass out the other side. Could this be a failing of the metric? Surely it should peak with <span>Sainte-Laguë.</span></span></div><div dir="ltr" data-setdir="false"><span><br></span></div><div dir="ltr" data-setdir="false"><span>I'm also surprised at how much worse psi voting seems to perform than harmonic voting (which you mentioned). I would have expected harmonic to be better, but not by that much. I always told Warren that Reweighted Range Voting would be better with the KP-transformation though!</span></div><div dir="ltr" data-setdir="false"><span><br></span></div><div dir="ltr" data-setdir="false"><span>Toby</span></div><div><br></div>
</div><div id="ydp38456931yahoo_quoted_6302477853" class="ydp38456931yahoo_quoted">
<div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
<div>
On Wednesday 11 September 2024 at 16:32:45 BST, Kristofer Munsterhjelm <km-elmet@munsterhjelm.no> wrote:
</div>
<div><br></div>
<div><br></div>
<div><div dir="ltr">On 2024-09-11 14:32, Toby Pereira wrote:<br clear="none">> I have another couple of questions. You said that the zero points are <br clear="none">> what you'd get by picking candidates at random. But does this not depend <br clear="none">> on how the candidates are distributed?<br clear="none"><br clear="none">Yes, that's right. All the results depend on the model, which currently <br clear="none">is a very simple binary one.<br clear="none"><br clear="none">> Are they just uniformly spread across the voting space?<br clear="none">This is how the model works:<br clear="none"><br clear="none">Let n be the number of issues for the issue space for this round. First <br clear="none">draw n random uniform numbers for where the ith number is how likely a <br clear="none">random voter is to hold the "yes" opinion on the ith issue. Call this <br clear="none">the bias vector.<br clear="none"><br clear="none">Then assign the voters their issues by flipping biased coins, where the <br clear="none">bias is given by the bias vector.<br clear="none"><br clear="none">Calculate the correct proportions of yes opinions across all the voters <br clear="none">and update the bias vector. Since the second step is random, we'll <br clear="none">hardly ever get an exact match to the bias vector proportions from the <br clear="none">first step. The bias vector needs to reflect the proportion of voters <br clear="none">who actually hold the yes position for proportionality calculations to work.<br clear="none"><br clear="none">The first k voters are candidates, so the voters and candidates come <br clear="none">from the same distribution. This also means that the candidates <br clear="none">paricipate in the election too.<br clear="none"><br clear="none">Random candidate just picks these k candidates at random. They're not <br clear="none">uniformly spread across the voting space since their yes/no opinions are <br clear="none">influenced by the bias vector just like the voters' are.<br clear="none"><br clear="none">Each voter rates each candidate according to their Hamming distance, <br clear="none">i.e. number of points equals number of issues that they agree upon, plus <br clear="none">some small amount of noise.<br clear="none"><br clear="none">> How did repeatedly electing the plurality loser end up so<br clear="none">> proportional?<br clear="none"><br clear="none">I was thinking the reason was something like: if the opinion space is <br clear="none">flat (i.e. some issues are liked by some voters, others are liked by <br clear="none">other voters, with little correlation), then if you were to repeatedly <br clear="none">elect someone hated by a polarizing method, you would be electing <br clear="none">favorites of the "other camp".<br clear="none"><br clear="none">But it turned out that wasn't actually the case. What I had called <br clear="none">"Worst Plurality" (electing the Plurality loser) was in fact worst <br clear="none">*Anti*plurality (electing the Antiplurality loser). And I suppose that <br clear="none">since Antiplurality has high VSE awful proportionality, reflecting it <br clear="none">got something that had proportionality but not utility.<br clear="none"><br clear="none">That's why review is so important: it helps identify slip-ups and bugs. <br clear="none">Thanks for prompting me to investigate this.<br clear="none"><br clear="none">With the bug fixed, I get the following results after 900 rounds, same <br clear="none">parameters:<br clear="none"><br clear="none"> Prop'ty Utility<br clear="none">-1.0518 -0.64366 Worst Plurality<br clear="none"> 0.36886 -0.86348 Worst Antiplurality<br clear="none"><br clear="none">which makes a lot more sense. (They'll be slightly off compared to the <br clear="none">attached results since I didn't run more rounds, but the quadrants are a <br clear="none">lot more sensible.)<br clear="none"><br clear="none">I'm not entirely sure why "elect the loser" flips the sign on both <br clear="none">proportionality and utility, though. You'd expect proportionality to be <br clear="none">more fragile and thus show bad results (VSE < 0) if you go around <br clear="none">electing hated candidates... but apparently not.<br clear="none"><br clear="none">> Also would it be possible to post the result as the raw numbers in addition to the graph?<br clear="none"><br clear="none">Sure. I've attached the following files:<br clear="none"><br clear="none">harmonic.txt: Harmonic voting with different delta values<br clear="none">harmonic_extended.txt: Harmonic voting with delta > 1 (dashed line on graph)<br clear="none">isoelastic.txt: Isoelastic<br clear="none">psi.txt: Psi voting<br clear="none">qpq.txt: QPQ<br clear="none"><br clear="none">others.txt: Other methods, for the full graph<br clear="none">selected.txt: Selected methods for the detailed graph<br clear="none"><br clear="none">These are with 377k rounds.<br clear="none"><br clear="none">I've marked the mistakenly thought to be Plurality loser results #Worst <br clear="none">Antiplurality#, to show that they're really electing Antiplurality losers.<br clear="none"><br clear="none">The names in others.txt in particular require some explanation:<br clear="none"><br clear="none">Method names containing a question mark have been imported more or less <br clear="none">directly from my old source; I have not fully checked them for bugs.<br clear="none"><br clear="none">Maj[base]: Majoritarian/bloc voting using the "base" method. This just <br clear="none">elects the winner, second place, third place, etc. according the base <br clear="none">method.<br clear="none"><br clear="none">Maj[Eliminate[base]]: Bloc voting using sequential loser elimination <br clear="none">with "base" as the base method. E.g. Eliminate[Plurality] is IRV, <br clear="none">Eliminate[Antiplurality] is Coombs.<br clear="none"><br clear="none">Maj[AVGEliminate[base]]: As above, but eliminates every candidate with <br clear="none">below-average score for the round. Maj[AVGEliminate[Plurality]] is Craig <br clear="none">Carey's IFPP.<br clear="none"><br clear="none">Cardinal-20: Range voting with a 0...20 scale. Absolute scale.<br clear="none">Cardinal-20(norm): Same, but normalized scale.<br clear="none"><br clear="none">Ext-Minmin: the "max A>B" method: the winner is the one with the <br clear="none">greatest pairwise defeat over someone else.<br clear="none"><br clear="none">ReweightA[positional method]: Like reweighted Range voting, but using <br clear="none">the positional method's points instead of ratings. Each voter's weight <br clear="none">is adjusted to be C / (C + Q), where Q is the sum of contributions to <br clear="none">elected candidates, with each contribution normalized so that maximum <br clear="none">number of points is mapped to 1, and minimum to 0; and C is an <br clear="none">adjustable parameter.<br clear="none"><br clear="none">ReweightM[positional method]: When someone is elected, each voter's <br clear="none">current weight is multiplied by C / (C + Q), where Q is the sum of <br clear="none">contributions to that candidate.<br clear="none"><br clear="none">Range-Auction, Q-Range STV, Linear Range STV, Quota Bucklin, Set PR <br clear="none">Bucklin, Compat-QLTD-PR, M-Set Webster: methods from my 2008 simulator; <br clear="none">I'm not quite sure how they work; they thus need more investigation. Of <br clear="none">these, only the Range STV versions and M-Set Webster seem to be good, <br clear="none">and I can probably throw out the rest unless other simulations show them <br clear="none">to be good.<br clear="none"><br clear="none">DHwL[base]: D'Hondt without lists. The base method is used to pick the <br clear="none">next winner according to the modified pairwise matrix.<br clear="none"><br clear="none">PSC-CLE: https://electowiki.org/wiki/PSC-CLE. "Quota = x" uses the quota <br clear="none">(num voters)/(num seats + x) instead of the Droop quota.<br clear="none"><br clear="none">C-Elim[base]: As PSC-CLE, but using the base method's elimination order. <br clear="none">PSC-CLE is C-Elim[Schulze].<br clear="none"><br clear="none">STV-ME (base): Generalization of BTR-IRV. Let N = (number of seats - <br clear="none">number already elected) + 1. When a candidate needs to be eliminated, <br clear="none">conduct an election between the N candidates with the least first <br clear="none">preference count, using the base method. Eliminate the loser of this <br clear="none">election. Note that STV-ME (Plurality) is not the same thing as plain STV.<br clear="none"><br clear="none">R-Birational: Birational with a relative scale. (Just "birational" uses <br clear="none">an absolute scale.)<br clear="none"><br clear="none">For positional methods, ER means equal-rank is counted whole, but this <br clear="none">rarely comes into play due to the noise being added to voters' ratings. <br clear="none">/fd means "first differences", i.e. ties for elimination are broken by <br clear="none">the first round where the candidates were not tied.<div class="ydp38456931yqt6991347413" id="ydp38456931yqtfd03459"><br clear="none"><br clear="none">-km</div></div></div>
</div>
</div></body></html>