Re: Level of proportionality for two-seat PR methods

Toby Pereira via Election-Methods <[email protected]> Sat, 13 Jun 2026 07:05:51 +0000 (UTC)
Newsgroups gmane.politics.election-methods
Message-ID <[email protected]>
--===============1620058444494001143==
Content-Type: multipart/alternative; 
	boundary="----=_Part_2467452_165502365.1781334351666"

------=_Part_2467452_165502365.1781334351666
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

 More interesting work. Like you I'm surprised by the position of random ba=
llots. Is it not the case that if you pick two random numbers between 0 and=
 1, the expected value of the lower number is 1/3 and the higher number 2/3=
? Not 1/4 and 3/4. And is that not essentially the same question?
Toby
    On Saturday, 13 June 2026 at 01:54:18 BST, Kristofer Munsterhjelm via E=
lection-Methods <[email protected]> wrote: =20
=20
 As mentioned in my previous post, I extended my PR measuring code to=20
consider different degrees of proportionality.

I haven't found a way to generalize proportionality degrees for any=20
number of seats (I should read that post, I suppose...) but for two=20
seats, I figured that it's not too hard. Since the voter opinion space=20
distribution is a standard normal, it's symmetric around zero, so=20
there's no reason for the method to prefer left-wing to right-wing=20
candidates (or vice versa). Thus, the proportionality level can be=20
parameterized by just how far from the median the two elected candidates=20
lie.

That is, the error function is
=C2=A0=C2=A0=C2=A0 sqrt((x_1 - y_1)^2 + (x_2 - y_2)^2)

and can be parameterized by a quantile level q, so that y_1 is the=20
position corresponding to the qth quantile of the voter opinion space=20
distribution, and y_2 is the (1-q)th quantile; and x_1 and x_2 is the=20
location of the leftmost and rightmost elected candidate in opinion space.

The "significant" values of q, or at least those that come most readily=20
to mind as distinct, are, for two seats:
=C2=A0=C2=A0=C2=A0 q =3D 0
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 as factional as possible, usually not=
 a good idea, but perhaps useful=20
for the unanimity setting I mentioned earlier.

=C2=A0=C2=A0=C2=A0 q =3D 1/4
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 This is the "independent wings" posit=
ion, where to elect a council,=20
you split the voters into two halves (left-of-center and=20
right-of-center) and elect the centrist from each (i.e. the=20
left-wingers' internal median and the right-wingers' internal median).=20
The median is at q =3D 1/2, so a median of the left half is 1/4.

=C2=A0=C2=A0=C2=A0 q =3D 1/3
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 Spatial Droop proportionality.

=C2=A0=C2=A0=C2=A0 q =3D 1/2
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 Bloc majoritarian voting (elect as ma=
ny median voter candidates as you=20
can).

The VSE is then a goodness-of-fit value (and is the maximum VSE that=20
method can get at any q, grid search optimization inaccuracies=20
notwithstanding). A low value means that even the best fit doesn't fit=20
very well, and thus that the method has trouble being consistently=20
proportional at any level. High values mean that the particular fit is a=20
very good one.

So, considering some methods for each of the "significant" values of q:

q =3D 0

Name=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 Prop. quantile=
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 Goodness-of-fit VSE
Worst Plurality=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0=C2=A0=C2=A0=C2=A0 =
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 -0.1640
Worst Antiplurality=C2=A0=C2=A0=C2=A0 0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 0.9996
LPV0+=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.0004=C2=A0=
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 -0.4448
Log-penalty (K =3D 1000)=C2=A0 0.0027=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =
=C2=A0=C2=A0=C2=A0 -0.0304

None of these are very good. Worst Plurality elects Plurality losers,=20
and Worst Antiplurality elects Antiplurality losers (i.e. it gives one=20
point to last place and elects the candidates with the most points).

The interesting part here is that Antiplurality has such a good fit; I=20
think this is because my model is entirely focused on PR - there are no=20
"universally good" or "universally bad" candidates. Hence chosing losers=20
means chosing closer to the tail end of the distribution, which, if the=20
method doesn't have any center squeeze or other problems, means=20
consistently hitting q=3D0.

q =3D 1/4

Name=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 Prop. quantile=
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 Goodness-of-fit VSE
QPQ (0.01)=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.2152=C2=A0=C2=A0=C2=A0 =
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.6605
SNTV=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.234=C2=A0=C2=
=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.5868
QPQ (Sainte-Lagu=C3=AB)=C2=A0=C2=A0=C2=A0 0.2381=C2=A0=C2=A0=C2=A0 =C2=A0=
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.7190
Random ballots=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.2484=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.3292
Bloc IRV (bottoms-up)=C2=A0=C2=A0=C2=A0 0.2538=C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.7967
Harmonic (delta =3D 0)=C2=A0=C2=A0=C2=A0 0.2651=C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.9181

I'm a bit surprised that random ballots ended up here. But I suppose=20
this is the "non-interactionist" category, and the random ballots method=20
doesn't seek to reweight anybody.

As for SNTV: while its proportionality level seems to be around 1/4 when=20
it's just given candidates from the opinion space distribution (or from=20
uniform), it's so vulnerable to vote management that in practice it=20
would be closer to 1/3. I'd also note that SNTV gets more factional with=20
more candidates; for instance, with two seats and 15 candidates, its=20
quantile is 0.2159. In contrast, Bloc IRV stays pretty solid at 0.2515.=20
This suggests that strategy is pretty much required to make SNTV behave=20
properly (similar to vote-splitting problems with single-winner Plurality).

The SNTV result would suggest that at least some methods that have q =3D=20
1/4 with honest behavior are susceptible to strategy that drive them to=20
q =3D 1/3. It would be interesting to know what methods are "stable" at=20
1/4 in this sense, i.e. that their proportionality level isn't forced=20
inward by strategy. I suspect that vote-management problems become more=20
severe the lower q you have, though that's just a hunch.

q =3D 1/3

Name=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 Prop. quantile=
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 Goodness-of-fit VSE
STV-ME (Plurality)=C2=A0 =C2=A0 =C2=A0 0.324=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0 =C2=A0=C2=A0=C2=A0 0.8323
Meek/Warren STV=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.3397=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.7945
QPQ (d'Hondt)=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.3398=C2=A0=C2=A0=C2=A0=
 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.7891
STV=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.3404=C2=A0=C2=
=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.7946
Vote For and Against=C2=A0=C2=A0=C2=A0 0.3506=C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.7330
STV-ME (Schulze)=C2=A0 =C2=A0 =C2=A0 =C2=A0 0.36=C2=A0=C2=A0=C2=A0 =C2=A0=
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.8145
Bloc Nauru-Borda IRV=C2=A0=C2=A0=C2=A0 0.362=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0 =C2=A0=C2=A0=C2=A0 0.9157
DHwL Ranked Pairs=C2=A0=C2=A0=C2=A0 0.3819=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0 =C2=A0=C2=A0=C2=A0 0.8538
Schulze STV=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.393=C2=A0=C2=A0=C2=A0 =
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.5141

and for the cardinal methods within this region:

Harmonic (delta =3D 0.14)=C2=A0=C2=A0=C2=A0 0.3007=C2=A0=C2=A0=C2=A0 =C2=A0=
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.9355
...
Harmonic (d'Hondt)=C2=A0=C2=A0=C2=A0 0.382=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0 =C2=A0=C2=A0=C2=A0 0.9246

and

Isoelastic (r =3D -10)=C2=A0=C2=A0=C2=A0 0.3816=C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.4803
...
Isoelastic (r =3D -5.7)=C2=A0=C2=A0=C2=A0 0.3993=C2=A0=C2=A0=C2=A0 =C2=A0=
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.5310

Not too much to say here. Some of the negative part of Isoelastic is in=20
this region, but not very good; Harmonic is much better. (Psi has an=20
optimum of q =3D 0.5, to be handled later.) DHwL is a multiplicative=20
version of Olli Salmi's "d'Hondt Without Lists"; see=20
http://lists.electorama.com/pipermail/election-methods-electorama.com/2008-=
October/121082.html.

I would suspect that the positional and positional elimination methods=20
are unstable in the number of seats to be elected, i.e. that their=20
optimal q (for some reasonable generalization) would change drastically=20
as the number of seats changes. Surprisingly, they don't change much=20
with number of candidates.

Schulze STV is somewhat of a surprise here. If my glue code was just=20
outright wrong, I would expect q to be either zero or 1/2, but it's=20
0.39, which is not *too* far off 1/3. Its goodness-of-fit is still=20
pretty bad. I guess I'll be more confident of whether there are errors=20
here once I've implemented some of Schulze's test elections; but still,=20
the result would be kinda weird if my implementation is just broken.

If the method turns out to work properly, then maybe Schulze STV just=20
implements a suboptimal completion rule to pick from Schulze's=20
vote-management Smith set. Or the measure isn't as good as I thought.

q =3D 1/2

Name=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 Prop. quantile=
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 Goodness-of-fit VSE
Bloc Antiplurality=C2=A0=C2=A0=C2=A0 0.3966=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0 =C2=A0=C2=A0=C2=A0 0.2139
PSC-CLE=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.4704=C2=
=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.9642
Bloc Ranked pairs=C2=A0=C2=A0=C2=A0 0.4994=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0 =C2=A0=C2=A0=C2=A0 0.9999
Range 0-20, rel. scale=C2=A0=C2=A0=C2=A0 0.5=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0 =C2=A0=C2=A0=C2=A0 0.9181
Bloc Borda=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.5=C2=A0=C2=A0=C2=A0 =C2=
=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.9331
Range 0-20, abs. scale=C2=A0=C2=A0=C2=A0 0.5=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0 =C2=A0=C2=A0=C2=A0 0.9734

and cardinal methods (for some parameter values)

Isoelastic (r =3D -5.5)=C2=A0=C2=A0=C2=A0 0.4007=C2=A0=C2=A0=C2=A0 =C2=A0=
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.5329
Isoelastic (r =3D 2.7)=C2=A0=C2=A0=C2=A0 0.5=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0 =C2=A0=C2=A0=C2=A0 0.9733 (q=3D0.5 max)
Isoelastic (r =3D 10)=C2=A0=C2=A0=C2=A0 0.5=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0 =C2=A0=C2=A0=C2=A0 0.7533

Psi (delta =3D 0)=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.5=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.6985
Psi (Sainte-Lagu=C3=AB)=C2=A0=C2=A0=C2=A0 0.5=C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.7421
Psi (d'Hondt)=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.5=C2=A0=C2=A0=C2=A0 =
=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 0.7717

These are the majoritarian/centrist ones. I'm most surprised at bloc=20
Antiplurality being that low, since I'd imagine that positional methods=20
on the other side of Borda are even more center-heavy than Borda itself.=20
PSC-CLE not being more proportional is also interesting, as is that=20
every delta Psi has proportionality 0.5; unless my code is wrong, this=20
means that Psi as a whole is a lot more center-biased than would be=20
expected of a proportional method.


So this post is already pretty long, but there's one thing I'd like to=20
mention. A method I implemented back in 2007-2009 as a proof of concept=20
showed good results (for its given quantile value) in a very limited=20
test, and the general idea might be worth investigating further:

Two seats, four candidates:

Name=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 Prop. quantile=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Goodness-of-fit VSE
CFC-Kemeny=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.2493=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.9998

for comparison,
Meek/Warren STV=C2=A0 =C2=A0 =C2=A0 =C2=A0 0.3319=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.9620
QPQ (d'Hondt=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.3321=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.9603
Harmonic (d'Hondt)=C2=A0 =C2=A0 =C2=A0 0.3732=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.9505

This is a clustering-based version of Kemeny (which is why I can't run=20
it with the full ten candidates; the combinatorial explosion is awful).=20
The setup is that the voting power (ballot weight), say w_i for the ith=20
ballot, is divided into (for two seats) a left half and a right half,=20
w_i,left + w_i,right =3D w_i. The left half must have equal the voting=20
power of the right half (so they represent as many voters). Then the=20
optimizer finds Kemeny social orders for both halves so that different=20
candidates win in each and the total Kemeny score is maximized.

Its proportionality level is 1/4 because it treats the two halves=20
separately. But there might be a way to make each half's result also=20
consider the other half's voters, or something similar, to bias it=20
towards Droop results. And if so, it might provide good results over the=20
whole scale from q=3D1/4 up to q=3D1/2.

But I'd have to use a more tractable method than Kemeny as the base.

I guess that Monroe would also do pretty well by this measure for=20
similar reasons. And perhaps there are ways to make Monroe "care about"=20
other clusters than its own, as well, to generalize it to span a range=20
of q, not just the 1/4 or "independent clusters" position.

-km
----
Election-Methods mailing list - see https://electorama.com/em for list info
 =20
------=_Part_2467452_165502365.1781334351666
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><head></head><body><div class=3D"ydp3491da7cyahoo-style-wrap" style=
=3D"font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px=
;"><div></div>
        <div dir=3D"ltr" data-setdir=3D"false">More interesting work. Like =
you I'm surprised by the position of random ballots. Is it not the case tha=
t if you pick two random numbers between 0 and 1, the expected value of the=
 lower number is 1/3 and the higher number 2/3? Not 1/4 and 3/4. And is tha=
t not essentially the same question?</div><div dir=3D"ltr" data-setdir=3D"f=
alse"><br></div><div dir=3D"ltr" data-setdir=3D"false">Toby</div><div><br><=
/div>
       =20
        </div><div id=3D"ydp5c6569f3yahoo_quoted_1881378962" class=3D"ydp5c=
6569f3yahoo_quoted">
            <div style=3D"font-family:'Helvetica Neue', Helvetica, Arial, s=
ans-serif;font-size:13px;color:#26282a;">
               =20
                <div>
                        On Saturday, 13 June 2026 at 01:54:18 BST, Kristofe=
r Munsterhjelm via Election-Methods &lt;[email protected]=
om&gt; wrote:
                    </div>
                    <div><br></div>
                    <div><br></div>
               =20
               =20
                <div><div dir=3D"ltr">As mentioned in my previous post, I e=
xtended my PR measuring code to <br></div><div dir=3D"ltr">consider differe=
nt degrees of proportionality.<br></div><div dir=3D"ltr"><br></div><div dir=
=3D"ltr">I haven't found a way to generalize proportionality degrees for an=
y <br></div><div dir=3D"ltr">number of seats (I should read that post, I su=
ppose...) but for two <br></div><div dir=3D"ltr">seats, I figured that it's=
 not too hard. Since the voter opinion space <br></div><div dir=3D"ltr">dis=
tribution is a standard normal, it's symmetric around zero, so <br></div><d=
iv dir=3D"ltr">there's no reason for the method to prefer left-wing to righ=
t-wing <br></div><div dir=3D"ltr">candidates (or vice versa). Thus, the pro=
portionality level can be <br></div><div dir=3D"ltr">parameterized by just =
how far from the median the two elected candidates <br></div><div dir=3D"lt=
r">lie.<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">That is, the e=
rror function is<br></div><div dir=3D"ltr">&nbsp;&nbsp;&nbsp; sqrt((x_1 - y=
_1)^2 + (x_2 - y_2)^2)<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr"=
>and can be parameterized by a quantile level q, so that y_1 is the <br></d=
iv><div dir=3D"ltr">position corresponding to the qth quantile of the voter=
 opinion space <br></div><div dir=3D"ltr">distribution, and y_2 is the (1-q=
)th quantile; and x_1 and x_2 is the <br></div><div dir=3D"ltr">location of=
 the leftmost and rightmost elected candidate in opinion space.<br></div><d=
iv dir=3D"ltr"><br></div><div dir=3D"ltr">The "significant" values of q, or=
 at least those that come most readily <br></div><div dir=3D"ltr">to mind a=
s distinct, are, for two seats:<br></div><div dir=3D"ltr">&nbsp;&nbsp;&nbsp=
; q =3D 0<br></div><div dir=3D"ltr">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; a=
s factional as possible, usually not a good idea, but perhaps useful <br></=
div><div dir=3D"ltr">for the unanimity setting I mentioned earlier.<br></di=
v><div dir=3D"ltr"><br></div><div dir=3D"ltr">&nbsp;&nbsp;&nbsp; q =3D 1/4<=
br></div><div dir=3D"ltr">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; This is the=
 "independent wings" position, where to elect a council, <br></div><div dir=
=3D"ltr">you split the voters into two halves (left-of-center and <br></div=
><div dir=3D"ltr">right-of-center) and elect the centrist from each (i.e. t=
he <br></div><div dir=3D"ltr">left-wingers' internal median and the right-w=
ingers' internal median). <br></div><div dir=3D"ltr">The median is at q =3D=
 1/2, so a median of the left half is 1/4.<br></div><div dir=3D"ltr"><br></=
div><div dir=3D"ltr">&nbsp;&nbsp;&nbsp; q =3D 1/3<br></div><div dir=3D"ltr"=
>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Spatial Droop proportionality.<br></=
div><div dir=3D"ltr"><br></div><div dir=3D"ltr">&nbsp;&nbsp;&nbsp; q =3D 1/=
2<br></div><div dir=3D"ltr">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Bloc majo=
ritarian voting (elect as many median voter candidates as you <br></div><di=
v dir=3D"ltr">can).<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">Th=
e VSE is then a goodness-of-fit value (and is the maximum VSE that <br></di=
v><div dir=3D"ltr">method can get at any q, grid search optimization inaccu=
racies <br></div><div dir=3D"ltr">notwithstanding). A low value means that =
even the best fit doesn't fit <br></div><div dir=3D"ltr">very well, and thu=
s that the method has trouble being consistently <br></div><div dir=3D"ltr"=
>proportional at any level. High values mean that the particular fit is a <=
br></div><div dir=3D"ltr">very good one.<br></div><div dir=3D"ltr"><br></di=
v><div dir=3D"ltr">So, considering some methods for each of the "significan=
t" values of q:<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">q =3D =
0<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">Name&nbsp;&nbsp;&nbs=
p; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Prop. quantile&nbsp;&nbsp;&nbsp; &=
nbsp;&nbsp;&nbsp; Goodness-of-fit VSE<br></div><div dir=3D"ltr">Worst Plura=
lity&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&=
nbsp; &nbsp;&nbsp;&nbsp; -0.1640<br></div><div dir=3D"ltr">Worst Antiplural=
ity&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&n=
bsp;  0.9996<br></div><div dir=3D"ltr">LPV0+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp; &nbsp;&nbsp;&nbsp; 0.0004&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp=
;&nbsp;&nbsp; -0.4448<br></div><div dir=3D"ltr">Log-penalty (K =3D 1000)&nb=
sp; 0.0027&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; -0.0304<=
br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">None of these are very=
 good. Worst Plurality elects Plurality losers, <br></div><div dir=3D"ltr">=
and Worst Antiplurality elects Antiplurality losers (i.e. it gives one <br>=
</div><div dir=3D"ltr">point to last place and elects the candidates with t=
he most points).<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">The i=
nteresting part here is that Antiplurality has such a good fit; I <br></div=
><div dir=3D"ltr">think this is because my model is entirely focused on PR =
- there are no <br></div><div dir=3D"ltr">"universally good" or "universall=
y bad" candidates. Hence chosing losers <br></div><div dir=3D"ltr">means ch=
osing closer to the tail end of the distribution, which, if the <br></div><=
div dir=3D"ltr">method doesn't have any center squeeze or other problems, m=
eans <br></div><div dir=3D"ltr">consistently hitting q=3D0.<br></div><div d=
ir=3D"ltr"><br></div><div dir=3D"ltr">q =3D 1/4<br></div><div dir=3D"ltr"><=
br></div><div dir=3D"ltr">Name&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&=
nbsp;&nbsp; Prop. quantile&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Goodness-of=
-fit VSE<br></div><div dir=3D"ltr">QPQ (0.01)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp=
;&nbsp; 0.2152&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.6=
605<br></div><div dir=3D"ltr">SNTV&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nb=
sp;&nbsp;&nbsp; 0.234&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbs=
p;  0.5868<br></div><div dir=3D"ltr">QPQ (Sainte-Lagu=C3=AB)&nbsp;&nbsp;&nb=
sp; 0.2381&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.7190<=
br></div><div dir=3D"ltr">Random ballots&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbs=
p; 0.2484&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.3292<b=
r></div><div dir=3D"ltr">Bloc IRV (bottoms-up)&nbsp;&nbsp;&nbsp; 0.2538&nbs=
p;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.7967<br></div><div =
dir=3D"ltr">Harmonic (delta =3D 0)&nbsp;&nbsp;&nbsp; 0.2651&nbsp;&nbsp;&nbs=
p; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.9181<br></div><div dir=3D"ltr">=
<br></div><div dir=3D"ltr">I'm a bit surprised that random ballots ended up=
 here. But I suppose <br></div><div dir=3D"ltr">this is the "non-interactio=
nist" category, and the random ballots method <br></div><div dir=3D"ltr">do=
esn't seek to reweight anybody.<br></div><div dir=3D"ltr"><br></div><div di=
r=3D"ltr">As for SNTV: while its proportionality level seems to be around 1=
/4 when <br></div><div dir=3D"ltr">it's just given candidates from the opin=
ion space distribution (or from <br></div><div dir=3D"ltr">uniform), it's s=
o vulnerable to vote management that in practice it <br></div><div dir=3D"l=
tr">would be closer to 1/3. I'd also note that SNTV gets more factional wit=
h <br></div><div dir=3D"ltr">more candidates; for instance, with two seats =
and 15 candidates, its <br></div><div dir=3D"ltr">quantile is 0.2159. In co=
ntrast, Bloc IRV stays pretty solid at 0.2515. <br></div><div dir=3D"ltr">T=
his suggests that strategy is pretty much required to make SNTV behave <br>=
</div><div dir=3D"ltr">properly (similar to vote-splitting problems with si=
ngle-winner Plurality).<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr=
">The SNTV result would suggest that at least some methods that have q =3D =
<br></div><div dir=3D"ltr">1/4 with honest behavior are susceptible to stra=
tegy that drive them to <br></div><div dir=3D"ltr">q =3D 1/3. It would be i=
nteresting to know what methods are "stable" at <br></div><div dir=3D"ltr">=
1/4 in this sense, i.e. that their proportionality level isn't forced <br><=
/div><div dir=3D"ltr">inward by strategy. I suspect that vote-management pr=
oblems become more <br></div><div dir=3D"ltr">severe the lower q you have, =
though that's just a hunch.<br></div><div dir=3D"ltr"><br></div><div dir=3D=
"ltr">q =3D 1/3<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">Name&n=
bsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Prop. quantile&nbsp;=
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Goodness-of-fit VSE<br></div><div dir=3D"lt=
r">STV-ME (Plurality)&nbsp; &nbsp; &nbsp; 0.324&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp;&nbsp; &nbsp;&nbsp;&nbsp;  0.8323<br></div><div dir=3D"ltr">Meek/Warren =
STV&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 0.3397&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp;&nbsp; &nbsp;&nbsp;&nbsp;  0.7945<br></div><div dir=3D"ltr">QPQ (d'Hondt=
)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 0.3398&nbsp;&nbsp;&nbsp; &nbsp;&nbsp=
;&nbsp; &nbsp;&nbsp;&nbsp;  0.7891<br></div><div dir=3D"ltr">STV&nbsp;&nbsp=
;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 0.3404&nbsp;&nbsp;&nbsp; &nbs=
p;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.7946<br></div><div dir=3D"ltr">Vote Fo=
r and Against&nbsp;&nbsp;&nbsp; 0.3506&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=
 &nbsp;&nbsp;&nbsp;  0.7330<br></div><div dir=3D"ltr">STV-ME (Schulze)&nbsp=
; &nbsp; &nbsp; &nbsp; 0.36&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbs=
p;&nbsp;  0.8145<br></div><div dir=3D"ltr">Bloc Nauru-Borda IRV&nbsp;&nbsp;=
&nbsp; 0.362&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.915=
7<br></div><div dir=3D"ltr">DHwL Ranked Pairs&nbsp;&nbsp;&nbsp; 0.3819&nbsp=
;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.8538<br></div><div d=
ir=3D"ltr">Schulze STV&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 0.393&nbsp;&nbs=
p;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.5141<br></div><div dir=3D=
"ltr"><br></div><div dir=3D"ltr">and for the cardinal methods within this r=
egion:<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">Harmonic (delta=
 =3D 0.14)&nbsp;&nbsp;&nbsp; 0.3007&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &n=
bsp;&nbsp;&nbsp;  0.9355<br></div><div dir=3D"ltr">...<br></div><div dir=3D=
"ltr">Harmonic (d'Hondt)&nbsp;&nbsp;&nbsp; 0.382&nbsp;&nbsp;&nbsp; &nbsp;&n=
bsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.9246<br></div><div dir=3D"ltr"><br></div><=
div dir=3D"ltr">and<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">Is=
oelastic (r =3D -10)&nbsp;&nbsp;&nbsp; 0.3816&nbsp;&nbsp;&nbsp; &nbsp;&nbsp=
;&nbsp; &nbsp;&nbsp;&nbsp;  0.4803<br></div><div dir=3D"ltr">...<br></div><=
div dir=3D"ltr">Isoelastic (r =3D -5.7)&nbsp;&nbsp;&nbsp; 0.3993&nbsp;&nbsp=
;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.5310<br></div><div dir=3D"=
ltr"><br></div><div dir=3D"ltr">Not too much to say here. Some of the negat=
ive part of Isoelastic is in <br></div><div dir=3D"ltr">this region, but no=
t very good; Harmonic is much better. (Psi has an <br></div><div dir=3D"ltr=
">optimum of q =3D 0.5, to be handled later.) DHwL is a multiplicative <br>=
</div><div dir=3D"ltr">version of Olli Salmi's "d'Hondt Without Lists"; see=
 <br></div><div dir=3D"ltr">http://lists.electorama.com/pipermail/election-=
methods-electorama.com/2008-October/121082.html.<br></div><div dir=3D"ltr">=
<br></div><div dir=3D"ltr">I would suspect that the positional and position=
al elimination methods <br></div><div dir=3D"ltr">are unstable in the numbe=
r of seats to be elected, i.e. that their <br></div><div dir=3D"ltr">optima=
l q (for some reasonable generalization) would change drastically <br></div=
><div dir=3D"ltr">as the number of seats changes. Surprisingly, they don't =
change much <br></div><div dir=3D"ltr">with number of candidates.<br></div>=
<div dir=3D"ltr"><br></div><div dir=3D"ltr">Schulze STV is somewhat of a su=
rprise here. If my glue code was just <br></div><div dir=3D"ltr">outright w=
rong, I would expect q to be either zero or 1/2, but it's <br></div><div di=
r=3D"ltr">0.39, which is not *too* far off 1/3. Its goodness-of-fit is stil=
l <br></div><div dir=3D"ltr">pretty bad. I guess I'll be more confident of =
whether there are errors <br></div><div dir=3D"ltr">here once I've implemen=
ted some of Schulze's test elections; but still, <br></div><div dir=3D"ltr"=
>the result would be kinda weird if my implementation is just broken.<br></=
div><div dir=3D"ltr"><br></div><div dir=3D"ltr">If the method turns out to =
work properly, then maybe Schulze STV just <br></div><div dir=3D"ltr">imple=
ments a suboptimal completion rule to pick from Schulze's <br></div><div di=
r=3D"ltr">vote-management Smith set. Or the measure isn't as good as I thou=
ght.<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">q =3D 1/2<br></di=
v><div dir=3D"ltr"><br></div><div dir=3D"ltr">Name&nbsp;&nbsp;&nbsp; &nbsp;=
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Prop. quantile&nbsp;&nbsp;&nbsp; &nbsp;&nbs=
p;&nbsp; Goodness-of-fit VSE<br></div><div dir=3D"ltr">Bloc Antiplurality&n=
bsp;&nbsp;&nbsp; 0.3966&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&n=
bsp;  0.2139<br></div><div dir=3D"ltr">PSC-CLE&nbsp;&nbsp;&nbsp; &nbsp;&nbs=
p;&nbsp; &nbsp;&nbsp;&nbsp; 0.4704&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nb=
sp;&nbsp;&nbsp;  0.9642<br></div><div dir=3D"ltr">Bloc Ranked pairs&nbsp;&n=
bsp;&nbsp; 0.4994&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  =
0.9999<br></div><div dir=3D"ltr">Range 0-20, rel. scale&nbsp;&nbsp;&nbsp; 0=
.5&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.9181<br></div=
><div dir=3D"ltr">Bloc Borda&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 0.5&nbsp;=
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.9331<br></div><div di=
r=3D"ltr">Range 0-20, abs. scale&nbsp;&nbsp;&nbsp; 0.5&nbsp;&nbsp;&nbsp; &n=
bsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.9734<br></div><div dir=3D"ltr"><br><=
/div><div dir=3D"ltr">and cardinal methods (for some parameter values)<br><=
/div><div dir=3D"ltr"><br></div><div dir=3D"ltr">Isoelastic (r =3D -5.5)&nb=
sp;&nbsp;&nbsp; 0.4007&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nb=
sp;  0.5329<br></div><div dir=3D"ltr">Isoelastic (r =3D 2.7)&nbsp;&nbsp;&nb=
sp; 0.5&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.9733 (q=
=3D0.5 max)<br></div><div dir=3D"ltr">Isoelastic (r =3D 10)&nbsp;&nbsp;&nbs=
p; 0.5&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.7533<br><=
/div><div dir=3D"ltr"><br></div><div dir=3D"ltr">Psi (delta =3D 0)&nbsp;&nb=
sp;&nbsp; &nbsp;&nbsp;&nbsp; 0.5&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp=
;&nbsp;&nbsp;  0.6985<br></div><div dir=3D"ltr">Psi (Sainte-Lagu=C3=AB)&nbs=
p;&nbsp;&nbsp; 0.5&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
 0.7421<br></div><div dir=3D"ltr">Psi (d'Hondt)&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp;&nbsp; 0.5&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  0.77=
17<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">These are the major=
itarian/centrist ones. I'm most surprised at bloc <br></div><div dir=3D"ltr=
">Antiplurality being that low, since I'd imagine that positional methods <=
br></div><div dir=3D"ltr">on the other side of Borda are even more center-h=
eavy than Borda itself. <br></div><div dir=3D"ltr">PSC-CLE not being more p=
roportional is also interesting, as is that <br></div><div dir=3D"ltr">ever=
y delta Psi has proportionality 0.5; unless my code is wrong, this <br></di=
v><div dir=3D"ltr">means that Psi as a whole is a lot more center-biased th=
an would be <br></div><div dir=3D"ltr">expected of a proportional method.<b=
r></div><div dir=3D"ltr"><br></div><div dir=3D"ltr"><br></div><div dir=3D"l=
tr">So this post is already pretty long, but there's one thing I'd like to =
<br></div><div dir=3D"ltr">mention. A method I implemented back in 2007-200=
9 as a proof of concept <br></div><div dir=3D"ltr">showed good results (for=
 its given quantile value) in a very limited <br></div><div dir=3D"ltr">tes=
t, and the general idea might be worth investigating further:<br></div><div=
 dir=3D"ltr"><br></div><div dir=3D"ltr">Two seats, four candidates:<br></di=
v><div dir=3D"ltr"><br></div><div dir=3D"ltr">Name&nbsp;&nbsp;&nbsp; &nbsp;=
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Prop. quantile&nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; Goodness-of-fit VSE<br></div><div dir=3D"ltr">CFC-Kemeny&nbsp; &nbsp;=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.2493&nbsp; &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp; &nbsp; &nbsp; &nbsp;  0.9998<br></div><div dir=3D"ltr"><br></div><=
div dir=3D"ltr">for comparison,<br></div><div dir=3D"ltr">Meek/Warren STV&n=
bsp; &nbsp; &nbsp; &nbsp;  0.3319&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;  0.9620<br></div><div dir=3D"ltr">QPQ (d'Hondt&nbsp; &=
nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.3321&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;  0.9603<br></div><div dir=3D"ltr">Harmonic (d'H=
ondt)&nbsp; &nbsp; &nbsp; 0.3732&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; &nbsp;  0.9505<br></div><div dir=3D"ltr"><br></div><div dir=3D=
"ltr">This is a clustering-based version of Kemeny (which is why I can't ru=
n <br></div><div dir=3D"ltr">it with the full ten candidates; the combinato=
rial explosion is awful). <br></div><div dir=3D"ltr">The setup is that the =
voting power (ballot weight), say w_i for the ith <br></div><div dir=3D"ltr=
">ballot, is divided into (for two seats) a left half and a right half, <br=
></div><div dir=3D"ltr">w_i,left + w_i,right =3D w_i. The left half must ha=
ve equal the voting <br></div><div dir=3D"ltr">power of the right half (so =
they represent as many voters). Then the <br></div><div dir=3D"ltr">optimiz=
er finds Kemeny social orders for both halves so that different <br></div><=
div dir=3D"ltr">candidates win in each and the total Kemeny score is maximi=
zed.<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">Its proportionali=
ty level is 1/4 because it treats the two halves <br></div><div dir=3D"ltr"=
>separately. But there might be a way to make each half's result also <br><=
/div><div dir=3D"ltr">consider the other half's voters, or something simila=
r, to bias it <br></div><div dir=3D"ltr">towards Droop results. And if so, =
it might provide good results over the <br></div><div dir=3D"ltr">whole sca=
le from q=3D1/4 up to q=3D1/2.<br></div><div dir=3D"ltr"><br></div><div dir=
=3D"ltr">But I'd have to use a more tractable method than Kemeny as the bas=
e.<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">I guess that Monroe=
 would also do pretty well by this measure for <br></div><div dir=3D"ltr">s=
imilar reasons. And perhaps there are ways to make Monroe "care about" <br>=
</div><div dir=3D"ltr">other clusters than its own, as well, to generalize =
it to span a range <br></div><div dir=3D"ltr">of q, not just the 1/4 or "in=
dependent clusters" position.<br></div><div dir=3D"ltr"><br></div><div dir=
=3D"ltr">-km<br></div><div dir=3D"ltr">----<br></div><div dir=3D"ltr">Elect=
ion-Methods mailing list - see <a href=3D"https://electorama.com/em" rel=3D=
"nofollow" target=3D"_blank">https://electorama.com/em</a> for list info<br=
></div></div>
            </div>
        </div></body></html>
------=_Part_2467452_165502365.1781334351666--

--===============1620058444494001143==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

----
Election-Methods mailing list - see https://electorama.com/em for list info

--===============1620058444494001143==--