[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
weights).
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
ballot.
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