Re: Level of proportionality for two-seat PR methods

Toby Pereira via Election-Methods <[email protected]> Sat, 13 Jun 2026 17:09:52 +0000 (UTC)
Newsgroups gmane.politics.election-methods
Message-ID <[email protected]>
--===============2850101816169846313==
Content-Type: multipart/alternative; 
	boundary="----=_Part_2609217_344693335.1781370592500"

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

 Obviously I overcomplicated that. You're just going from q to 1-q in equal=
 increments. Sorry for the multiple posts.
Toby
    On Saturday, 13 June 2026 at 18:01:23 BST, Toby Pereira <tdp201b@yahoo.=
co.uk> wrote: =20
=20
  Sorry - the formula for the lower extreme point would be=C2=A02q - 0.5. F=
or the higher extreme point, it would be 1 minus that, so 1.5 - 2q.
Toby
    On Saturday, 13 June 2026 at 17:57:07 BST, Toby Pereira <tdp201b@yahoo.=
co.uk> wrote: =20
=20
  For n seats and a 0 to 1 scale for candidate positions, for your Spatial =
Droop proportionality, the candidates would be at 1/(n+1), 2/(n+1), ... , n=
/(n+1). And for independent wings (if they're still called wings with multi=
ple seats), it would be 0.5/n, 1.5/n, ... , (n-0.5)/n. Bloc majoritarian wo=
uld still be with them all in the middle.

So in the general case for Spatial Droop q is 1/(n+1) rather than specifica=
lly 1/3.
As for the overall formula, you can see it as looking for the mid-points in=
 the cells given n equal-sized cells (for n seats), but with different extr=
eme points for the far left and far right cell.
So in the 2-candidate case:
When q =3D 1/4, the extreme points are just 0 and 1When q =3D 1/3, the extr=
eme points are 1/6 and 5/6When q =3D 1/2, the extreme points are 1/2 and 1/=
2 (the cells have no size, forcing everything into the middle)
In the general case:
The extreme points for wings would always be 0 and 1The extreme points for =
Droop would be 1/(2(n+1)) and 1-1/(2(n+1))The extreme points for majoritari=
an would always both be 1/2
q for the "wings" position is 1/(2n)q for Droop is 1/(n+1)q for majoritaria=
n is 1/2
I think the formula for the extreme points would be 2q - 0.5 for a 0 to 1 s=
cale.
Some of this might make sense.
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.
-km
----
Election-Methods mailing list - see https://electorama.com/em for list info
     =20
------=_Part_2609217_344693335.1781370592500
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><head></head><body><div class=3D"ydpf5e1541yahoo-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">Obviously I overcomplicated =
that. You're just going from q to 1-q in equal increments. Sorry for the mu=
ltiple posts.</div><div dir=3D"ltr" data-setdir=3D"false"><br></div><div di=
r=3D"ltr" data-setdir=3D"false">Toby</div><div><br></div>
       =20
        </div><div id=3D"ydpbb673aa9yahoo_quoted_2089221214" class=3D"ydpbb=
673aa9yahoo_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 18:01:23 BST, Toby Per=
eira &lt;[email protected]&gt; wrote:
                    </div>
                    <div><br></div>
                    <div><br></div>
               =20
               =20
                <div><div id=3D"ydpbb673aa9yiv4161829266"><div><div style=
=3D"font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px=
;" class=3D"ydpbb673aa9yiv4161829266ydp6a945978yahoo-style-wrap"><div></div=
>
        <div dir=3D"ltr">Sorry - the formula for the lower extreme point wo=
uld be&nbsp;<span><span style=3D"color:rgb(38, 40, 42);font-family:Helvetic=
a Neue, Helvetica, Arial, sans-serif;">2q - 0.5. For the higher extreme poi=
nt, it would be 1 minus that, so 1.5 - 2q.</span></span></div><div dir=3D"l=
tr"><span><span style=3D"color:rgb(38, 40, 42);font-family:Helvetica Neue, =
Helvetica, Arial, sans-serif;"><br clear=3D"none"></span></span></div><div =
dir=3D"ltr"><span><span style=3D"color:rgb(38, 40, 42);font-family:Helvetic=
a Neue, Helvetica, Arial, sans-serif;">Toby</span></span></div><div><br cle=
ar=3D"none"></div>
       =20
        </div><div id=3D"ydpbb673aa9yiv4161829266yqt48605" class=3D"ydpbb67=
3aa9yiv4161829266yqt8337847271"><div id=3D"ydpbb673aa9yiv4161829266ydp43eca=
d98yahoo_quoted_1650295562" class=3D"ydpbb673aa9yiv4161829266ydp43ecad98yah=
oo_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 17:57:07 BST, Toby Per=
eira &lt;[email protected]&gt; wrote:
                    </div>
                    <div><br clear=3D"none"></div>
                    <div><br clear=3D"none"></div>
               =20
               =20
                <div><div id=3D"ydpbb673aa9yiv4161829266ydp43ecad98yiv10139=
94983"><div><div style=3D"font-family:Helvetica Neue, Helvetica, Arial, san=
s-serif;font-size:13px;" class=3D"ydpbb673aa9yiv4161829266ydp43ecad98yiv101=
3994983ydp56533b20yahoo-style-wrap"><div></div>
        <div dir=3D"ltr"><span><span style=3D"color:rgb(0, 0, 0);font-famil=
y:Helvetica Neue, Helvetica, Arial, sans-serif;">For n seats and a 0 to 1 s=
cale for candidate positions, for your Spatial Droop proportionality, the c=
andidates would be at 1/(n+1), 2/(n+1), ... , n/(n+1). And for independent =
wings (if they're still called wings with multiple seats), it would be 0.5/=
n, 1.5/n, ... , (n-0.5)/n. Bloc majoritarian would still be with them all i=
n the middle.</span></span><br clear=3D"none"></div><div dir=3D"ltr"><span>=
<span style=3D"color:rgb(0, 0, 0);font-family:Helvetica Neue, Helvetica, Ar=
ial, sans-serif;"><br clear=3D"none"></span></span></div><div dir=3D"ltr"><=
span><span style=3D"color:rgb(0, 0, 0);font-family:Helvetica Neue, Helvetic=
a, Arial, sans-serif;">So in the general case for Spatial Droop q is 1/(n+1=
) rather than specifically 1/3.</span></span></div><div dir=3D"ltr"><span><=
span style=3D"color:rgb(0, 0, 0);font-family:Helvetica Neue, Helvetica, Ari=
al, sans-serif;"><br clear=3D"none"></span></span></div><div dir=3D"ltr"><s=
pan></span><div><div>As for the overall formula, you can see it as looking =
for the mid-points in the cells given n equal-sized cells (for n seats), bu=
t with different extreme points for the far left and far right cell.</div><=
div><br clear=3D"none"></div><div>So in the 2-candidate case:</div><div><br=
 clear=3D"none"></div><div>When q =3D 1/4, the extreme points are just 0 an=
d 1</div><div>When q =3D 1/3, the extreme points are 1/6 and 5/6</div><div>=
When q =3D 1/2, the extreme points are 1/2 and 1/2 (the cells have no size,=
 forcing everything into the middle)</div><div><br clear=3D"none"></div><di=
v>In the general case:</div><div><br clear=3D"none"></div><div>The extreme =
points for wings would always be 0 and 1</div><div dir=3D"ltr">The extreme =
points for Droop would be 1/(2(n+1)) and 1-<span><span style=3D"color:rgb(0=
, 0, 0);font-family:Helvetica Neue, Helvetica, Arial, sans-serif;">1/(2(n+1=
))</span></span></div><div>The extreme points for majoritarian would always=
 both be 1/2</div><div><br clear=3D"none"></div><div>q for the "wings" posi=
tion is 1/(2n)</div><div>q for Droop is 1/(n+1)</div><div>q for majoritaria=
n is 1/2</div><div><br clear=3D"none"></div><div dir=3D"ltr">I think the fo=
rmula for the extreme points would be 2q - 0.5 for a 0 to 1 scale.</div></d=
iv><div dir=3D"ltr"><br clear=3D"none"></div><div dir=3D"ltr">Some of this =
might make sense.</div><div dir=3D"ltr"><br clear=3D"none"></div><div dir=
=3D"ltr">Toby</div></div><div dir=3D"ltr"><br clear=3D"none"></div><div><br=
 clear=3D"none"></div>
       =20
        </div><div id=3D"ydpbb673aa9yiv4161829266ydp43ecad98yiv1013994983yd=
pc47340f5yahoo_quoted_2234304791" class=3D"ydpbb673aa9yiv4161829266ydp43eca=
d98yiv1013994983ydpc47340f5yahoo_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 clear=3D"none"></div>
                    <div><br clear=3D"none"></div>
               =20
               =20
                <div><div dir=3D"ltr">As mentioned in my previous post, I e=
xtended my PR measuring code to <br clear=3D"none"></div><div dir=3D"ltr">c=
onsider different degrees of proportionality.<br clear=3D"none"></div><div =
dir=3D"ltr"><br clear=3D"none"></div><div dir=3D"ltr">I haven't found a way=
 to generalize proportionality degrees for any <br clear=3D"none"></div><di=
v dir=3D"ltr">number of seats (I should read that post, I suppose...) but f=
or two <br clear=3D"none"></div><div dir=3D"ltr">seats, I figured that it's=
 not too hard. Since the voter opinion space <br clear=3D"none"></div><div =
dir=3D"ltr">distribution is a standard normal, it's symmetric around zero, =
so <br clear=3D"none"></div><div dir=3D"ltr">there's no reason for the meth=
od to prefer left-wing to right-wing <br clear=3D"none"></div><div dir=3D"l=
tr">candidates (or vice versa). Thus, the proportionality level can be <br =
clear=3D"none"></div><div dir=3D"ltr">parameterized by just how far from th=
e median the two elected candidates <br clear=3D"none"></div><div dir=3D"lt=
r">lie.<br clear=3D"none"></div><div dir=3D"ltr"><br clear=3D"none"></div><=
div dir=3D"ltr">That is, the error function is<br clear=3D"none"></div><div=
 dir=3D"ltr">&nbsp;&nbsp;&nbsp; sqrt((x_1 - y_1)^2 + (x_2 - y_2)^2)<br clea=
r=3D"none"></div><div dir=3D"ltr"><br clear=3D"none"></div><div dir=3D"ltr"=
>and can be parameterized by a quantile level q, so that y_1 is the <br cle=
ar=3D"none"></div><div dir=3D"ltr">position corresponding to the qth quanti=
le of the voter opinion space <br clear=3D"none"></div><div dir=3D"ltr">dis=
tribution, and y_2 is the (1-q)th quantile; and x_1 and x_2 is the <br clea=
r=3D"none"></div><div dir=3D"ltr">location of the leftmost and rightmost el=
ected candidate in opinion space.<br clear=3D"none"></div><div dir=3D"ltr">=
<br clear=3D"none"></div><div dir=3D"ltr">The "significant" values of q, or=
 at least those that come most readily <br clear=3D"none"></div><div dir=3D=
"ltr">to mind as distinct, are, for two seats:<br clear=3D"none"></div><div=
 dir=3D"ltr">&nbsp;&nbsp;&nbsp; q =3D 0<br clear=3D"none"></div><div dir=3D=
"ltr">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; as factional as possible, usual=
ly not a good idea, but perhaps useful <br clear=3D"none"></div><div dir=3D=
"ltr">for the unanimity setting I mentioned earlier.<br clear=3D"none"></di=
v><div dir=3D"ltr"><br clear=3D"none"></div><div dir=3D"ltr">&nbsp;&nbsp;&n=
bsp; q =3D 1/4<br clear=3D"none"></div><div dir=3D"ltr">&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp; This is the "independent wings" position, where to elect=
 a council, <br clear=3D"none"></div><div dir=3D"ltr">you split the voters =
into two halves (left-of-center and <br clear=3D"none"></div><div dir=3D"lt=
r">right-of-center) and elect the centrist from each (i.e. the <br clear=3D=
"none"></div><div dir=3D"ltr">left-wingers' internal median and the right-w=
ingers' internal median). <br clear=3D"none"></div><div dir=3D"ltr">The med=
ian is at q =3D 1/2, so a median of the left half is 1/4.<br clear=3D"none"=
></div><div dir=3D"ltr"><br clear=3D"none"></div><div dir=3D"ltr">&nbsp;&nb=
sp;&nbsp; q =3D 1/3<br clear=3D"none"></div><div dir=3D"ltr">&nbsp;&nbsp;&n=
bsp; &nbsp;&nbsp;&nbsp; Spatial Droop proportionality.<br clear=3D"none"></=
div><div dir=3D"ltr"><br clear=3D"none"></div><div dir=3D"ltr">&nbsp;&nbsp;=
&nbsp; q =3D 1/2<br clear=3D"none"></div><div dir=3D"ltr">&nbsp;&nbsp;&nbsp=
; &nbsp;&nbsp;&nbsp; Bloc majoritarian voting (elect as many median voter c=
andidates as you <br clear=3D"none"></div><div dir=3D"ltr">can).<br clear=
=3D"none"></div><div dir=3D"ltr"><br clear=3D"none"></div><div dir=3D"ltr">=
The VSE is then a goodness-of-fit value (and is the maximum VSE that <br cl=
ear=3D"none"></div><div dir=3D"ltr">method can get at any q, grid search op=
timization inaccuracies <br clear=3D"none"></div><div dir=3D"ltr">notwithst=
anding). A low value means that even the best fit doesn't fit <br clear=3D"=
none"></div><div dir=3D"ltr">very well, and thus that the method has troubl=
e being consistently <br clear=3D"none"></div><div dir=3D"ltr">proportional=
 at any level. High values mean that the particular fit is a <br clear=3D"n=
one"></div><div dir=3D"ltr">very good one.</div><div dir=3D"ltr"><br clear=
=3D"none"></div><div dir=3D"ltr">-km<br clear=3D"none"></div><div dir=3D"lt=
r">----<br clear=3D"none"></div><div dir=3D"ltr">Election-Methods mailing l=
ist - see <a shape=3D"rect" href=3D"https://electorama.com/em" rel=3D"nofol=
low" target=3D"_blank">https://electorama.com/em</a> for list info<br clear=
=3D"none"></div></div>
            </div>
        </div></div></div></div>
            </div>
        </div></div></div></div></div>
            </div>
        </div></body></html>
------=_Part_2609217_344693335.1781370592500--

--===============2850101816169846313==
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

--===============2850101816169846313==--