[EM] Preferential voting system where a candidate may win multiple seats

Kristofer Munsterhjelm km_elmet at lavabit.com
Fri Jun 28 03:51:02 PDT 2013

On 06/27/2013 03:12 AM, Vidar Wahlberg wrote:
> Greetings!
> I'm new here, I'm not a mathematician and merely a layman on the subject
> of voting methods so please grant me some leeway, but do feel free to
> correct any misconceptions I may have.
> Briefly about my goals:
> I'm trying to find a better alternative to the voting system used in
> Norway (party-list PR, counting votes using a modified Sainte-Laguë
> method where first divisor is 1.4 instead of 1), where you still vote
> for parties rather than persons and may rank parties in a preferred
> order instead of only being able to vote for a single party. A party may
> win multiple seats in each district.

 From one Norwegian to another, greetings and welcome!

> The short answer to "why not vote directly for persons?" would be that
> in Norway there's more focus on the goals of a party rather than the
> goal of its politicians, and some may argue that the extra abstraction
> layer is a good thing, as well as I'd like an alternative that won't be
> completely alien to the common people. I'm hoping that any discussion
> that may arise won't focus on this aspect, though.

I think seeing an STV-like method in Norway would be interesting. Not 
because I particularly prefer appeals to a given person, but because I 
think it would give the voters greater power to keep the party 
leadership from silencing the wings. For instance, if the voters are 
significantly more opposed to data retention than the Labor Party 
leadership, they could preferably vote for Labor Party candidates also 
opposed to data retention without having to abandon voting for that 
party (if they think it has otherwise good ideas).

I don't have proof that it wouldn't degenerate into a raw populist 
competition, though, so I can certainly see your point. I just don't 
know of any examples of STV-like methods failing or leading to raw 
populism in the countries where they're used.

> As of why I'm interested in this then that's because I'm arguing for a
> preferential election rather than the "one person one vote" system which
> I believe is leading us towards a two/three party system, and I need to
> know (better) what options are out there.
> So far I've not been able to find much information on preferential
> voting system where you vote for a party rather than a person. If anyone
> have more insight and can guide me to more literature I would appreciate
> it.

The United States doesn't have list PR. Therefore, most of the 
discussion of these methods are in context of state population 
apportionment, i.e. how many seats to give each state in Congress. The 
problem is similar: you want to give seats in a body according to 
fractions that may not exactly round off. In party list PR, the 
fractions are based on relative party support. In apportionment, the 
fractions are based on relative state population.

The Range Voting web site has a page on apportionment here: 
http://rangevoting.org/Apportion.html . You can find some simulations of 
bias at http://www.rangevoting.org/BishopSim.html , and Warren also 
discusses a new divisor method at 
http://www.rangevoting.org/NewAppo.html . If I recall correctly, the new 
method was constructed by modeling the distribution that the fractions 
will have, and then calculating the divisor that will give the least 
bias given that distribution.

> And here's the part where I hope you'll be gentle:
> I tinkered a bit on my own. Where as I am a fan of Ranked Pairs and
> Beatpath, I find those difficult to explain to someone with no insight
> in voting systems, and neither could I figure out how to apply RP in a
> way where a candidate can win multiple seats.

I think Ranked Pairs is best described by a logic that greater 
majorities are more important than lesser ones. So you go down the 
sorted list and you piece together the social ranking based on the 
pairwise victories. Sometimes, what you want to add conflicts with what 
you already have, but again greater majorities are more important than 
lesser ones, so in that case you just skip the piece of information that 
can't be integrated.

But it might still be too hard to explain. You'd have to lay the 
foundation first: that the problem of Plurality (etc) can be considered 
a problem of candidates obscuring each other; that a one-on-one 
comparison has no such obscuring going on; and thus that if we were to 
use one-on-one comparisons, that'd be better. Or use a sports analogy 
(since round-robin tournaments usually use Copeland with 3-1-0 or 2-1-0 

As for applying Condorcet in multiwinner methods, the usual approach is 
to consider all combinations of outcomes as "virtual candidates". That's 
what Schulze STV does, but beware: the Schulze STV paper is not the most 
accessible or easy to understand. Without some kind of branch-and-bound 
magic, it would also be impractical in a 169-seat parliament :-)

> The basics behind PR-STV on the other hand are fairly easy to explain,
> and I did manage to implement a way of counting votes to candidates
> which can win multiple seats based on the ideas behind STV, but I'm no
> expert on voting methods and would like to hear your thoughts.
> This is the general approach:
> 1. Calculate quota (Droop): votes / (seats + 1) + 1
> 2. Tally votes, assign seats to candidates with enough votes to exceed
>     the quota [1]: candidate.seats = candidate.votes / quota
> 3. Calculate new vote weight:
>     vote.weight = vote.weight - candidate.seats * quota / candidate.votes
> 4. Exclude candidate with least votes and redistribute those votes [2]
> 5. Repeat step 2-4 until all but one candidate has been excluded (which
>     gets the final seat)
> [1]: Since a candidate is not excluded from further seat allocations
> upon reaching the quota the surplus votes are not redistributed. I do
> not know which adverse effects this may have that are not present in STV
> where candidates are excluded upon reaching the quota.
> [2]: It troubles me to decide which candidate that should be considered
> to have the fewer votes. If I choose the one with fewest first
> preference votes, then I may exclude a candidate that is very popular as
> a second choice, while a candidate that is popular by a few and despised
> by many may stay longer in the election. Since votes to elected
> candidates are not distributed to secondary preference then this issue
> is likely elevated. I'm contemplating on rather excluding the candidate
> that is least common on any ballot, regardless of rank, but I'm not
> certain on the implications this would cause.

This sounds a bit like a hybrid of candidate-based methods and party 
list PR methods. If you have a candidate-based method, then you need to 
keep track of the different voting chunks, redistribute surpluses and so 
on. But if the "candidates" are indistinguishable (as party seat 
positions are before applying the list ranking), then you don't need 
anything that complex.

When used as a party list method, ordinary STV reduces to largest 
remainder party list with a Droop quota. So if that's what you want, 
just use largest remainder.

But that wouldn't fix the unfairness in Norwegian party allocations 
either. I think your footnote #2 is closer to the mark, and the 
unfairness (while much slighter than in the US, obviously) has three 
parts. The three parts are the leveling seat algorithm, how the party 
list method acts when there are few seats, and the threshold.

I've never quite understood how the leveling seat algorithm works, and 
it often produces counterintuitive results. I think it would be better 
to just have "regional seats" that belong to a region rather than to a 
county. One would then apportion the local seats, and afterwards compare 
the results for a region with the results that region "should" have, 
giving out regional seats to compensate. The only problem with that 
scheme is to find out where the regional seats should be located, and 
from which list/s the regional MPs should be drawn.

Another option is to introduce weights on each party for a given region. 
Say that the Northern Norway region has 6 leveling seats. Then you 
calculate the desired outcome for the NN region as a whole (using 
Sainte-Laguë) and compare this to the current outcome (by adding up all 
the county results). Finally, you weight the votes to bring the latter 
closer to the former, but never so that more than 6 seats change ownership.
By "weighting" I mean this: say Progress has too many seats. Then you 
divide the number of votes they got in every county by some common x 
until they get fewer seats.
I think that this can be done simultaneously for every party by using 
linear programming, but I'm not sure of that. The scheme would also 
produce "floating" leveling seats, because the changes of which party 
gets which seat can happen in any of the counties in the region, and 
would happen where the parties in question are close to getting/not 
getting a seat. Thus it avoids the "where are the regional MPs going to 
be?" issue.

As for how the party list method acts when there are few seats, this is 
probably closer to the problem you're seeing (when one disregards 
leveling seats). Here's an old example I often pull in similar cases:

46: L > C > R
44: R > C > L
10: C > R > L

In the extreme case of there being only one seat, you would want C to 
win. But every divisor method reduces to Plurality when there's only one 
seat, so L gets elected instead. On the other hand, if you have a 
thousand seats, proportional representation pretty much says you should 
give 46% of them to L (were it a party), 44% to R, and 10% to C.

So we'd like a method that is Condorcetian when there's only one seat, 
yet proportional when there are loads. And such methods exist. Schulze's 
proportional ordering method comes to mind. It's complex, however, and 
it might be possible to make simpler methods since we can elect each 
"candidate" (party) multiple times.

A note here, though: it's often tempting to add some kind of strategy 
layer. If you have a large number of seats, some voters that vote X > Y 
 > Z, and X "very nearly" has the number of votes needed to get another 
seat, at first glance it would seem that you should somehow distribute 
the X-voters' votes to Y instead so that Y can get another seat, because 
that's what the voters wished. But that kind of logic, when taken to its 
conclusion, leads to a quota method. Doing that sort of automatic 
reallocation would turn Sainte-Laguë into something entirely different - 
a quota method. And quota methods all fail population pair monotonicity 
as given by the Rangevoting page I linked to. So unless you want a quota 
method, that path is not the right one to take.

And finally, there's the threshold. In some countries, the threshold is 
absolute - if the party doesn't get x% support, it gets no candidates. 
In Norway it is only absolute with respect to the leveling seats. But 
when dealing with thresholds, ranking is fairly simple to apply. If we 
permit voters to rank the parties, then the election can be extended 
with a sort of IRV-like system:

1. Count up the first preferences on every ballot.
2. If no party has less than x% support, we're done. Exit.
3. Otherwise, remove the party with the least support from every ballot, 
and go to 1.

The result is a support list where no party has less than x% support, 
where x is the threshold. However, this method shares IRV's sensitivity 
to initial conditions, and probably also fails monotonicity. One could 
probably fix that by using a system based on DAC/DSC, but that would be 
very complex. So for a leveling seat system, what comes to mind as a 
suggestion is:

1. Count first preferences and give county seats as usual.
2. Remove every party that has less than x% national support from every 
3. Count again.
4. Use the support levels thus given for the leveling seat calculation.

That suggestion might eliminate too much: it has an "anti-Woodall free 
riding" problem. If you vote "Communist > Red > Socialist Left", if the 
Communist Party has no hope and the Red party is just short of the 
threshold, then the IRV method above would retain Red, but this method 
wouldn't. But I don't think those effects would be significant. (If you 
disagree, let me know and I'll try to think of a better system!) Votes 
of the type "Red > Socialist Left > Labor", however, would give support 
to Socialist Left even after Red has been eliminated -- unlike the 
current system that doesn't give support to any other party if you vote 
for a party below the threshold.

More information about the Election-Methods mailing list