Biproportional Sainte-Laguë
Made Simple
Olli Salmi
2004
The purpose of this page is to make clear to myself how
the result is calculated in biproportional elections. The basic
idea behind them is that there are regions with electoral districts.
The parties get seats in proportion to the votes they get in the whole
region, and the districts get as many seats as they are entitled to on
the basis of population. There’s a contradiction in this because the
row sums (districts) and the column sums (parties) must match the seats
allocated in the whole region and they do not do so automatically.
In Sainte-Laguë’s method the vote of each party
is divided by a divisor. The result rounded off is the number of seats
that the party is entitled to. The method is usually described as an
algorithm to find a suitable divisor. For the allocation of seats it’s
irrelevant how we get this figure, but in legislation it’s usual, and
unnecessary, to describe the exact procedure.
Biproportional Sainte-Laguë is similar, but there are party divisors
and district divisors. A party’s vote in a district is divided with
the product of these divisors. The quotient is rounded off and the result
is the number of seats allocated for the party in that district. There
is an algorithm to find suitable divisors, but it’s not as easy as finding
Sainte-Laguë’s divisor.
The district divisors are needed because because the rounding may go in the
wrong direction, the turnout is different in each district and a district
may be entitled to more seats than its population warrants. The party divisors
are needed to correct the errors generated by the district divisors.
The method is based on a theorem proved by Balinski and Demange
(Hylland 2000). If we assume the divisors and rounding off mentioned
above, there is one correct apportionment (except in the case of a tie)
and such divisors can be found that the rounded quotients fall within
0.5 of the unrounded quotients.
The principle described by Balinski (2002) is not too difficult. You
can find a correct allocation of seats by doing Sainte-Laguë apportionments
alternatively on rows and columns until you have the correct row and
column sums. After the first round the distribution uses the unrounded
quotients of the previous apportionment instead of the votes. The divisors
after the first are around 1 and you get the final divisors by multiplying
all the divisors that have been used in the process. In practice a computer
application would be used, like BAZI by Friedrich Pukelsheim.
To allocate seats according to Sainte-Laguë you can divide the
vote for each party by a succession of numbers 0.5, 1.5, 2.5 etc. The quotients
are priority numbers, which indicate the order in which seats are assigned.
The party with the highest priority number gets the first seat, the party
with the second highest priority number gets the second seat, etc. You
separate as many of the highest priority numbers as there are seats and
and give the seats to the parties which the priority numbers belong to.
Here’s a priority table for two parties, A with 6000 votes and B with 5000.
|
A
|
B
|
|
6000 |
5000 |
| 0.5 |
12000 |
10000 |
| 1.5 |
4000 |
3333.333 |
| 2.5 |
2400 |
2000 |
| 3.5 |
1714.286 |
1428.571 |
This is actually a way of finding a suitable divisor. If you divide
A’s vote with 12000, the quotient is 0.5 which gets rounded up and yields
one seat. It should be noted that the priority number obtained with this
procedure is the upper limit for a divisor. A’s vote can be divided by
any other number between 12000 and 4000 to yield one seat. In biproportional Sainte-Laguë
you cannot use the highest possible divisor, because if you do, many unrounded
quotients will have the fractional part 0.5 and there will be a lot of ties
which take the algorithm into a loop.
Here is an example of a biproportional allocation. The data is from
a Finnish commission report where another biproportional method
was suggested. It’s from a region in eastern Finland with six parties
and four districts. The seats are allocated to the districts according
to the population using the Largest Remainders Method (Hare-Niemeyer).
First we allocate seats in the whole region. I have just fiddled
with the divisor until the total number of seats assigned is correct.
| .. |
SDP |
Centre Party |
National Coalition Party |
Left Alliance |
Green League |
Finnish Christian League |
Total |
..
|
| Kymi |
56620 |
38652 |
42346 |
10780 |
9207 |
9224 |
166829 |
14 |
| Mikkeli |
30233 |
33699 |
19178 |
3477 |
5426 |
6030 |
98043 |
7 |
| Kuopio |
24678 |
44868 |
20178 |
17704 |
5841 |
5681 |
118950 |
11 |
| North Karelia |
32467 |
26726 |
9923 |
4457 |
3724 |
5579 |
82876 |
6 |
| Total |
143998 |
143945 |
91625 |
36418 |
24198 |
26514 |
466698 |
38 |
| 12500 |
12 |
12 |
7 |
3 |
2 |
2 |
38 |
.. |
This is the target that we will aim at, the superapportionment.
Next we assign the seats to parties in each district according to Sainte-Laguë.
The highest number that distributes 14 seats in Kymi is 56620/4.5=1258.22...
for the Social Democratic Party. The next priority number is 42346/3.5=12098.85714
for the Coalition Party. A suitable divisor for biproportional Sainte-Laguë
is the average of these two figures, 12340.53968. The priority number for
the latest seat assigned is the lowest pij/(hij-0.5)
in the row, of course provided that hij>0. For the next seat
it’s the highest pij/(hij+0.5) in the row, where pij
is the vote for party j in district i, and hij is the number
of seats assigned to it. The divisor should be half way between these numbers.
The same is repeated for each district. With a spreadsheet you can
often guess the correct range of the divisor and then calculate it more
exactly. You can distribute all the seats with the help of priority numbers
but I cannot imagine anybody particularly wanting to do it.
| .. |
SDP |
Centre Party |
National Coalition Party |
Left Alliance |
Green League |
Finnish Christian League |
Divisor |
| Kymi |
4,588129973 |
3,132115855 |
3,431454465 |
0,873543644 |
0,74583448 |
0,747455155 |
12340,53968 |
| Mikkeli |
2,43053769 |
2,709271289 |
1,541677386 |
0,279457165 |
0,436068948 |
0,484628248 |
12438,4 |
| Kuopio |
2,141827966 |
3,894453606 |
1,751236872 |
1,536672164 |
0,506900443 |
0,493099557 |
11521 |
| North Karelia |
2,689357543 |
2,213810013 |
0,821957523 |
0,369189225 |
0,308472218 |
0,462128491 |
12072,4 |
The allocation isn't correct. The Coalition Party has one seat too many and
the Christians need one more seat. We have do the same thing as above vertically,
for the parties, but this time using the quotients from the previous round
instead of votes. Now the suitable divisor is the average of the lowest
[bij/(hij-0.5) and the highest bij/(hij+0.5)]
in the column, where bij is the unrounded quotient. Nothing
needs to be done with the parties that already have the correct number of
seats. The divisors are near 1 because the unrounded quotients are nearly
correct.
One can view this operation as a return of a proportion of the vote to the
underrepresented parties.
| .. |
SDP |
Centre Party |
National Coalition Party |
Left Alliance |
Green League |
Finnish Christian League |
| Kymi |
4,588129973 |
3,132115855 |
3,126216655 |
0,873543644 |
0,74583448 |
0,764481843 |
| Mikkeli |
2,43053769 |
2,709271289 |
1,404540719 |
0,279457165 |
0,436068948 |
0,495667859 |
| Kuopio |
2,141827966 |
3,894453606 |
1,595459281 |
1,536672164 |
0,506900443 |
0,504332141 |
| North Karelia |
2,689357543 |
2,213810013 |
0,748842021 |
0,369189225 |
0,308472218 |
0,472655568 |
| Divisor |
1 |
1 |
1,097638086 |
1 |
1 |
0,977727805 |
The allocation is still wrong, we have to do the districts again. Mikkeli
has only 6 seats and needs one seat from Kuopio. Again we use the unrounded
quotients from the previous round and adjust them with the divisors. This
can be viewed as a transfer of votes from overrepresented districts to underrepresented
ones.
| .. |
SDP |
Centre Party |
National Coalition Party |
Left Alliance |
Green League |
Finnish Christian League |
Divisor |
| Kymi |
4,588129973 |
3,132115855 |
3,126216655 |
0,873543644 |
0,74583448 |
0,764481843 |
1 |
| Mikkeli |
2,475655529 |
2,759563233 |
1,430613074 |
0,284644702 |
0,444163654 |
0,504868894 |
0,981775397 |
| Kuopio |
2,118036939 |
3,85119474 |
1,577737216 |
1,519603095 |
0,501269887 |
0,498730113 |
1,011232584 |
| North Karelia |
2,689357543 |
2,213810013 |
0,748842021 |
0,369189225 |
0,308472218 |
0,472655568 |
1 |
Now we have the correct result. The sum of the rounded quotients correspond
to the superappointment, both for the parties and for the districts. The
final divisors are calculated by multiplying all the divisors used in the
process within each party and each district. The party divisors are the
ones we got at round 2. The district divisor for Mikkeli is 0.981775397*12438=12211.7151,
and the divisor for Kuopio is 1.011232584*11521=11650.4106. The other
two are unchanged from the first round.
|
SDP
|
Centre Party
|
National Coalition Party
|
Left Alliance
|
Green League
|
Finnish Christian League
|
| .. |
1 |
1 |
1,097638086 |
1 |
1 |
0,977727805 |
| 12340,53968 |
4,588130 |
3,132116 |
3,126217 |
0,873544 |
0,745834 |
0,764482 |
| 12211,7151 |
2,475656 |
2,759563 |
1,430613 |
0,284645 |
0,444164 |
0,504869 |
| 11650,4106 |
2,118037 |
3,851195 |
1,577737 |
1,519603 |
0,501270 |
0,498730 |
| 12072,4 |
2,689358 |
2,213810 |
0,748842 |
0,369189 |
0,308472 |
0,472656 |
The following is the final apportionment.
|
SDP
|
Centre Party
|
National Coalition Party
|
Left Alliance
|
Green League
|
Finnish Christian League
|
Total
|
Kymi
|
5 |
3 |
3 |
1 |
1 |
1 |
14
|
Mikkeli
|
2 |
3 |
1 |
0 |
0 |
1 |
7
|
Kuopio
|
2 |
4 |
2 |
2 |
1 |
0 |
11
|
North Karelia
|
3 |
2 |
1 |
0 |
0 |
0 |
6
|
Total
|
12
|
12
|
7
|
3
|
2
|
2
|
38
|
This example is fairly easy. Hylland’s Bosnia-Herzegovina example
took 7 rounds horizontally and 6 rounds vertically to complete.
I am not sure what to do in case of a tie. It seems that the unrounded
quotients have the fractional part that is exactly 0.5. Moreover, there
has to be at least four of them (Hylland, footnote 30).
Hylland’s procedure is different. It creates ties and uses them to transfer
seats. It doesn’t directly generate party and district divisors.
Balinski, Michel (2002) «Une «dose» de proportionnelle:
Le système électoral mexicain.» Pour la Science, Avril
2002, 58-59.
Balinski, Michel Louis – Gabrielle Demange (1989a) «An
axiomatic approach to proportionality between matrices.» Mathematics
of Operations Research 14:700-719.
Balinski, Michel Louis – Gabrielle Demange (1989b) «Algorithms
for proportional matrices in reals and integers.» Mathematical Programming
45:193-210.
BAZI : Calculation of Allocations by Apportionment Methods
in the Internet
http://www.math.uni-augsburg.de/stochastik/bazi/welcome.html
(Accessed 21/7/2004)
Hylland, Aanund (2000) Proportionality in two dimensions.
http://www.oekonomi.uio.no/seminar/torsdag-v02/hylland-paper.doc
(link dead)
Hylland, Aanund (2002) Proportionality in two dimensions.
http://www.oekonomi.uio.no/seminar/torsdag-v02/hylland-notes.doc
(link dead)
Statisisches Amt des Kantons Zürich: Neues Zürcher Zuteilungsverfahren
http://www.statistik.zh.ch/wahlen/pukelsheim/
(Accessed 21/7/2004)