PR Approval Voting Method

I actually described this method originally on the CES Google Group, but I think it’s good enough to be worth bringing across to here. It uses approval ballots, but can easily be converted to a score method using the KP Transformation (and I’m sure there are other ways).

For a slate of candidates, the score for that slate is the probability that each of the candidates will be consecutively elected using the following algorithm, without any failures to elect:

  1. Clear all notes and eliminate from the ballots all candidates not in the slate and all already-elected candidates.
  2. Pick a ballot at random.
  3. If no remaining candidate is named on this ballot, then this is a failure to elect.
  4. If exactly one candidate is named on this ballot, elect this candidate and goto 1.
  5. If more than one candidate is named on this ballot, note these candidates and pick another ballot at random.
  6. If exactly one noted candidate appears on this ballot elect this candidate and goto 1.
  7. If no previously noted candidate appears on this ballot, ignore this ballot, pick another ballot at random and goto 6.
  8. If more than one previously noted appears on this ballot, then strike from the notes any candidate not appearing on this ballot and pick another ballot at random and goto 6.

I hope I’ve not made an error in that and it’s clear, but basically you keep picking ballots at random until only one candidate has appeared on them all. If the candidates go from >1 to 0 in one ballot you just ignore that ballot. The first ballot is never ignored though. If no candidates in the slate are on the first ballot, then it’s a failure. The score for a slate of candidates is the probability of electing them all without any failures.

Also, if there are candidates that have been approved on exactly the same ballots as each other, the algorithm will never be able to distinguish between them. In this case, one can be picked at random.

If all voters voted along party lines, then this would be equivalent to D’Hondt party list voting. I won’t give the proof here, but as an example:

2 to elect

2 voters: Party A
1 voter: Party B

D’Hondt would give a tie between AA and AB. This method would do the same.

The score for AA would be (2/3)^2 = 4/9.
The score for AB would be (2/3) * (1/3) + (1/3) * (2/3) = 4/9.

It also trivially passes strong PR, where if there are any universally approved candidates, then they won’t affect the proportionality among the remaining candidate factions.

For example:

3 to elect

2 voters: U, A1, A2
1 voter: U, B

The score for U, A1, A2 would be 1 * (2/3)^2 = 4/9.
The score for U A1, B would be 1 * (2/3) * (1/3) + 1 * (1/3) * (2/3) = 4/9.

This is the same as for the first example except with a universally approved candidate added, and the scores remain the same. Adding universally approved candidates to existing slates would not affect the scores of the slates, so strong PR is passed.

However, it does not pass independence of all-approved ballots. Ballots that approve every candidate can affect the results. For example:

2 to elect

2 voters: A1, A2
1 voter: B
1 voter: A1, A2, B

This is the same as the first example apart from the one voter who approves every candidate.

The score for A1, A2 is (3/4)^2 = 9/16 = 0.5625.
The score for A1, B is (2/3) * (2/4) + (1/3) * (3/4) = 7/12 = 0.58333…

There is a bias towards the lesser approved candidate in this case.

It is this failure that caused me to sit on this method for quite a while before reposting it on here as I was on the hunt for the “Holy Grail”, but I am no longer convinced that we can have all the desired criteria in one method.

If you’re not bothered about discretely electing individual candidates, you can elect them with different weights, proportional to the probability of them being picked by the following algorithm:

Pick a ballot at random and note the candidates approved on this ballot. Pick another ballot at random, and strike off from the list all candidates not also approved on this ballot. Continue until one candidate is left. If the number of candidates goes from >1 to 0 in one go, ignore that ballot and continue. If any tie cannot be broken, then elect the remaining candidates with equal probability.

Obviously this is no way to run a real election, but I do think it gives a very nice form of proportionality. It’s what the above method was based on, but electing individual candidates to a set number of positions using this philosophy proved harder than I’d hoped.

It is also very similar to random ballot tie-breaking as mentioned here:

Interestingly you can achieve strong PR and independence of all-approved ballots by having this as a non-deterministic method. Instead of using probabilities, you just elect candidates as they come out of the algorithm.

But to get their proportional share, a party would have to field a full slate of candidates. For example, in an election of two candidates, if a party had half the support but only fielded one candidate, they would only be elected 3/4 of the time.

Although I haven’t proved it yet, I think this has the benefit over other methods passing strong PR of being strictly monotonic - adding an approval for a candidate will increase the score for all the slates containing that candidate while leaving other slates unchanged.

Other methods like Monroe, Phragmen, Ebert and I think PAMSAC do not pass this, although with Monroe and PAMSAC approvals should at least not count against candidates receiving those approvals.

Thiele (also known as proportional approval voting) passes independence of all-approved ballots and is also strictly monotonic, but it fails strong PR.

By the way here!topic/electionscience/5skD8rTZ82k is the topic where I originally came up with the method. It’s a bit of a stream of consciousness and contains various errors along the way.

It might be that the “Holy Grail” that I (and others) have been after is impossible. Arguably the algorithm that elects candidates in differing strengths (rather than with one unit of weight each) is the Holy Grail of true proportionality but because we have to elect candidates as whole units in real-life elections, we can never achieve Holy Grailness in practice.

However, even that algorithm fails Pareto efficiency (which comes up in the thread I linked to). Take the following ballots:

2: ABC
2: ABD
1: AC
1: AD
1: BC
1: BD

According to the algorithm, A and B would have 5/12 of the power each, with C and D getting 1/12 each. If we look at it as a 12-seat election, then the number of elected candidates each voter would have voted for would be:

2: ABC (11)
2: ABD (11)
1: AC (6)
1: AD (6)
1: BC (6)
1: BD (6)

However, if A and B were given six seats each, we’d have:

2: ABC (12)
2: ABD (12)
1: AC (6)
1: AD (6)
1: BC (6)
1: BD (6)

Some voters are better off, and no voters are worse off, although there is greater disparity between the voters. However, in a proportional system, disparity arguably matters, and a voter might be more “satisfied” if candidates they have approved are approved by fewer other voters. Take the following example quoted from here

"2 to elect

5 voters: AC
4 voters: BC
1 voter: BD

Most sensible methods would elect BC. But let’s not worry about that for now. An optimising method that gives a score to any slate of candidates should be able to rank all slates of candidates in order. Compare AB with CD. In both cases, every voter would have exactly one candidate elected. But AB seems to me to be the far more proportional result and I might expect a method to give AB the better score. In the CD case, the single D voter is arguably better off as they don’t have to share their representation with anyone else and effectively have this candidate to themselves. But then imagine this case:

2 to elect

500 voters: AC
400 voters: BC
100 voters: BD
1 voter: CD

Now CD Pareto dominates AB in this sense of number of elected candidates each voter has approved. So would we say that any method that gives AB a higher score than CD is a bad method? Or would we perhaps say that it doesn’t matter because neither would actually be the winning set (BC would be)?

The point is that the Pareto failure of the new method I have described results in a parliament that is arguably more proportional in this sense, so maybe it’s not such a bad thing."

And later on in the thread:

“However, it seems to me that for a method to regard AB and CD as equal and for it to regard CD as better in the case with one extra CD voter, then its methodology would have to be just to look at the number of elected candidates each voter has approved, and use satisfaction scores for the voters based on this. But then it would just be the Thiele method, which comes with its own set of problems. So it might be that this form of Pareto failure is unavoidable for approval PR methods unless you want to stick with Thiele. And I definitely don’t want to do that.”