Sequential proportional approval voting

From electowiki
(Redirected from Thiele's method)
Wikipedia has an article on:

Sequential proportional approval voting (SPAV) or reweighted approval voting (RAV) is an electoral system that extends the concept of approval voting to a multiple winner election. Proposed by Danish statistician Thorvald N. Thiele in the early 1900s,[1] it was used (with adaptations for party lists) in Sweden for a short period after 1909.[2] If Score voting ballots are used then it is equivalent to Reweighted Score Voting.

Description

Flow chart of SPAV

This system converts AV into a multi-round rule,[3] selecting a candidate in each round and then re-weighing the approvals for the subsequent rounds. The first candidate elected is the AV winner (w1). The value of all ballots that approve of w1 are reduced in value from 1 to 1/2 and the approval scores recalculated. Next, the unelected candidate who has the highest approval score is elected (w2). Then the value of ballots that approve of both w1 and w2 are reduced in value to 1/3, and the value of all ballots that approve of either w1 or w2 but not both are reduced in value to 1/2.[4]

At each stage, the unelected candidate with the highest approval score is elected. Then the value of each voter’s ballot is set at where m is the number of candidates approved on that ballot who were already elected, until the required number of candidates is elected.

The system disadvantages minority groups who share some preferences with the majority. In terms of tactical voting, it is therefore desirable to free ride by withholding approval from candidates who are likely to be elected in any case. With the standard Jefferson method based reweighing it favours large factions in an attempt to mitigate vote management. On the other hand Sainte-Laguë method based reweighting is more fair to smaller factions.

It is however a much computationally simpler algorithm than (and can be considered a sequential form of) proportional approval voting, permitting votes to be counted either by hand or by computer, rather than requiring a computer to determine the outcome of all but the simplest elections.[5]

Example Code

 import pandas
 
 ballots = [
   {"Red": 1, "Green": 0, "Yellow": 0, "Blue": 1},
   {"Red": 0, "Green": 1, "Yellow": 0, "Blue": 1},
   {"Red": 1, "Green": 0, "Yellow": 1, "Blue": 0}, 
   {"Red": 1, "Green": 0, "Yellow": 1, "Blue": 1},
   {"Red": 0, "Green": 1, "Yellow": 0, "Blue": 1},
   {"Red": 1, "Green": 0, "Yellow": 1, "Blue": 1},  
   {"Red": 1, "Green": 1, "Yellow": 0, "Blue": 1},
   {"Red": 0, "Green": 1, "Yellow": 0, "Blue": 1},
   {"Red": 1, "Green": 0, "Yellow": 0, "Blue": 1},
 ]
 
 seats = 4
 seated = []
 max_score = 1
 
 #reweight
 def reweight(ballot):
   seated_scores = [
       ballot[candidate] for candidate in ballot if candidate in seated
   ]
   weight = 1/(1+sum(seated_scores)/max_score)
   return {candidate: weight*ballot[candidate] for candidate in ballot}
 
 def nextRound(ballots):
   reweightedBallots = [reweight(ballot) for ballot in ballots]  
   winner = pandas.DataFrame(reweightedBallots).sum().drop(seated).idxmax()
   print(pandas.DataFrame(reweightedBallots).sum())
   seated.append(winner)
   return reweightedBallots
 
 while len(seated) < seats:
   nextRound(ballots)
   print(seated)
Red       6.0
Green     4.0
Yellow    3.0
Blue      8.0
dtype: float64
['Blue']
Red       3.5
Green     2.0
Yellow    2.0
Blue      4.0
dtype: float64
['Blue', 'Red']
Red       2.166667
Green     1.833333
Yellow    1.166667
Blue      3.166667
dtype: float64
['Blue', 'Red', 'Green']
Red       2.083333
Green     1.250000
Yellow    1.166667
Blue      2.583333
dtype: float64
['Blue', 'Red', 'Green', 'Yellow']

Notes

SPAV's party list case is D'Hondt, because its reweighting is based on D'Hondt's divisors.[6]

In the same way that Approval voting is considered by almost nobody to be worse than FPTP, though some question the magnitude of the improvement, many find SPAV to be unambiguously better than SNTV. This is because it satisfies a stronger weak form of PSC, which allows solid coalitions to gain proportional representation with less need for coordinated strategy. This makes it less likely to result in anomalous results (i.e. less likely that a minority wins a majority of seats using vote management, for example). If every voter bullet votes, SPAV becomes SNTV.

See also

References

  1. E. Phragmén (1899): "Till frågan om en proportionell valmetod." Statsvetenskaplig tidskrifts Vol. 2, No. 2: pp 87-95 [1]
  2. Aziz, H., Brill, M., Conitzer, V., et al. (2014): "Justified Representation in Approval-Based Committee Voting", arXiv:1407.8269 p5 [2]
  3. Kilgour, D. Marc (2010). "Approval Balloting for Multi-winner Elections". In Jean-François Laslier; M. Remzi Sanver (eds.). Handbook on Approval Voting. Springer. pp. 105–124. ISBN 978-3-642-02839-7.
  4. Steven J. Brams, D. Marc Kilgour (2009): "Satisfaction Approval Voting": p4 [3]
  5. International Foundation for Autonomous Agents and Multiagent Systems, ed. (2015). "Computational Aspects of Multi-Winner Approval Voting" (PDF). Proceedings of the 2015 International Conference on Autonomous Agents & Multiagent Systems: May, 4 - 8, 2015, Istanbul, Turkey. New York, NY: ACM. pp. 107–115. ISBN 978-1-4503-3413-6.
  6. Janson, Svante (2016-11-27). "Phragmén's and Thiele's election methods". arXiv:1611.08826 [math.HO].