Measures of Political Behavior

Daniel Marcelino <dmarcelino@live.com>

August 04, 2016

Abstract

This tutorial describes some of the political behavior indices that are most visible in scholarly literature, along with measures of political diversity, seats allocation, and a small number of examples for graphically displaying results. The very high-level framework for this tutorial is provided by the R package SciencesPo–version 1.4.1 (Marcelino 2016), but other packages are also engaged to help with various tasks.

1 Introduction

This vignette describes a number of applications available in the R library SciencesPo for computing some of the most visible indices in the scholarship. These indices are important political abstractions because they provide grounding for categorizing units; therefore, making the way for causal comparison. Examples at the core of the discipline include measures of political concentration/fragmentation, political competition, and apportionment methods used to translate votes into seats.

This document is structured as follows. Section 2 gives a technical overview of the function, formulas, and examples of seat apportionment methods. Section 3 illustrates the use of political diversity methods to obtain empirical statistics of a political system environment, such as the effective number of parties, the nationalization of political parties, and political competition. Section 4 provides examples of computing proportionality measures. Section 5 ends with inequality measures.

2 Seat Apportionment Methods

Most democratic countries use apportionment methods to transform election results into whole numbers, which in turn indicate the number of seats that each party earns in a legislative body, administrative council, or committee. Which apportionment method does this best is not a trivial topic for mathematicians as well as for political scientists. Actually, several formulas have been proposed since the early time of representative assemblies. The following sections briefly present some of these allotment methods.

2.1 Highest Averages Methods of Allocating Seats Proportionally

Highest averages methods allocate seats proportionally to the number of votes by assigning seats in a way that assures the highest quotient by seat for each party. Other methods divide the votes by a mathematically derived quota, such as Droop and Hare quotas. In what follows are illustrative examples taken from Lijphart (1994) of the operation of some highest averages formulas in a six-member district with four parties.

# Table A.l
lijphart <- c("A"=41000, "B"=29000,"C"=17000, "D"=13000)

The basic inputs for this class of functions are: 1) a list of parties, 2) a list of positive votes, and 3) a constant value for the number of seats to be returned. A numeric value (0~1) for the threshold is optional.

By default, the function prints the apportionment method being used, a snippet of the divisors used, the effective number of parties (or candidates) index for both before and after the seat allocation method takes place, and the least squares index–or Gallagher index. The effective number of parties measured the before seat allocation is a measure of the party system fragmentation, once it deals with the effective number of parties at the electoral level, while the index computed after the seat allocation, the effective number of parliamentary parties. The Gallagher’s index is an indication of the disproportionality and runs from 0 to 100. The higher the value, the higher the disproportionality of the election outcome.

2.1.1 d’Hondt

Under the D’Hondt formula, seats are allocated using divisors of 1, 2, 3, 4, etc. Thus, suggesting that the divisors are simply one more than the number of seats that party already has.

library("SciencesPo", quietly = TRUE)

# The d'Hondt will give the same results as Jefferson's method
HighestAverages(parties=names(lijphart),
                votes=lijphart,
                seats = 6, 
                method = "dh") 
Method: d'Hondt 
Divisors: 1 2 3 4 ... 
ENP: 3.36 (After): 2.57 
Gallagher Index:  11.6 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
   A       3       50    

   B       2      33.3   

   C       1      16.7   

   D       0        0    
-------------------------

The d’Hondt is only one way of allocating seats in party list systems. Other methods include the Saint-Laguë, the modified Saint-Laguë, the Danish version, Imperiali (do not to confuse with the Imperiali quota, which is a Largest remainder method), Hungtinton-Hill, Webster, etc.

2.1.2 Saint-Laguë

Named after its founder, the pure Sainte-Laguë formula, also known as Schepers method, uses the odd-integer divisor series (1, 3, 5, 7, …) to elect candidates from political parties in approximate proportion as the proportion of votes won by the party. The outcome would be the same as the outcome produced by the Webster’s divisors method.

# The Sainte-Laguë will give the same results as the Webster's method (wb)

HighestAverages(parties=names(lijphart),
            votes=lijphart,
                seats = 6,
                method = "sl") 
Method: Sainte-Laguë 
Divisors: 1 3 5 7 ... 
ENP: 3.36 (After): 3.6 
Gallagher Index:  6.75 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
   A       2      33.3   

   B       2      33.3   

   C       1      16.7   

   D       1      16.7   
-------------------------

2.1.3 Modified Saint-Laguë

The modified Sainte-Laguë use divisors of 1.4, 3, 5, 7, etc. How does the d’Hondt divisor compare to the Modified Sainte-Laguë one? Which divisor method tend to favor larger parties and which one smaller parties?

HighestAverages(parties=names(lijphart),
                votes=lijphart, 
                seats = 6,
                method = "msl") 
Method: Modified Sainte-Laguë 
Divisors: 1.4 3 5 7 ... 
ENP: 3.36 (After): 3.6 
Gallagher Index:  6.75 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
   A       2      33.3   

   B       2      33.3   

   C       1      16.7   

   D       1      16.7   
-------------------------

2.1.4 Danish

The Danish divisors (1, 4, 7, 10, …) increase so fast that large parties are quickly cut down, acting much to the benefit of smaller parties.

HighestAverages(parties=names(lijphart), 
                votes=lijphart, 
                seats = 6, 
                method = "danish") 
Method: Danish Sainte-Laguë 
Divisors: 1 4 7 10 ... 
ENP: 3.36 (After): 3.6 
Gallagher Index:  6.75 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
   A       2      33.3   

   B       2      33.3   

   C       1      16.7   

   D       1      16.7   
-------------------------

2.1.5 Hungarian

The Hungarian version of Sainte-Laguë uses divisors of (1.5, 3, 5, 7, 9, …) increase so fast that large parties are quickly cut down, acting much to the benefit of smaller parties.

HighestAverages(parties=names(lijphart),
                votes=lijphart, 
                seats = 6, 
                method = "hsl") 
Method: Hungarian Sainte-Laguë 
Divisors: 1.5 3 5 7 ... 
ENP: 3.36 (After): 3.6 
Gallagher Index:  6.75 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
   A       2      33.3   

   B       2      33.3   

   C       1      16.7   

   D       1      16.7   
-------------------------

2.1.6 Webster

This approach does not use a standard divisor either. It uses instead a different divisor and modified quota such that rounding with cut-off point at algebraic mean of lower and upper quotas: wb = \(\frac{L + (L + 1)}{2}\).

HighestAverages(parties=names(lijphart),
                votes=lijphart, 
                seats = 6, 
                method = "wb") 
Method: Webster 
Divisors: 0.5 2.5 4.5 6.5 ... 
ENP: 3.36 (After): 3.6 
Gallagher Index:  6.75 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
   A       2      33.3   

   B       2      33.3   

   C       1      16.7   

   D       1      16.7   
-------------------------

2.1.7 Imperiali

The Italian Imperiali divisor system has a slowly-increasing sequence (1, 1.5, 2, 2.5, 3, …), with 0.5 difference between consecutive divisors. This is tighter than the d’Hondt divisors for which this difference is 1. Like d’Hondt, the Imperiali system is designed to encourage coalitions and secure majority governments under a PR system, but the Imperiali will be the most favorable to large parties as they will gain many seats before their quotients are reduced below those of the smaller parties.

HighestAverages(parties=names(lijphart),
                votes=lijphart, 
                seats = 6, 
                method = "imperiali") 
Method: Imperiali 
Divisors: 1 1.5 2 2.5 ... 
ENP: 3.36 (After): 2.57 
Gallagher Index:  11.6 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
   A       3       50    

   B       2      33.3   

   C       1      16.7   

   D       0        0    
-------------------------

The Belgian municipal councils were elected by the Imperiali highest averages method. The following example comes from the 2006 election in Bruges, where 47 seats were upon.

Bruges=c("CD&V/N-VA"=32092, "SP.A/Spirit"=20028, 
         "Flemish Interest"=13408, "Open VLD/Vivant"=9520,
         "Green!"=5328, "Other"=2207)

HighestAverages(parties=names(Bruges),
                votes=Bruges, 
                seats = 47,
                method = "imperiali") 
Method: Imperiali 
Divisors: 1 1.5 2 2.5 ... 
ENP: 3.93 (After): 3.47 
Gallagher Index:  3.78 
 

----------------------------------
     Party        Seats   % Seats 
---------------- ------- ---------
   CD&V/N-VA       20      42.6   

  SP.A/Spirit      12      25.5   

Flemish Interest    8       17    

Open VLD/Vivant     5      10.6   

     Green!         2       4.3   

     Other          0        0    
----------------------------------

2.1.8 Hungtinton-Hill

The method proposed by Joseph Hill and Edward Huntington does not use a standard divisor, but a different one and also a modified quota such that rounding with cut-off point at geometric mean: hh = \(\sqrt{L(L + 1)}\). This method makes sense only if every party is guaranteed at least one seat. It has been used for allotting seats in the US House of Representatives to the states.

HighestAverages(parties=names(lijphart),
                votes=lijphart, 
                seats = 6, method = "hh") 
Method: Hungtinton-Hill 
Divisors: 0 1.41 2.45 3.46 ... 
ENP: 3.36 (After): 3.6 
Gallagher Index:  6.75 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
   A       2      33.3   

   B       2      33.3   

   C       1      16.7   

   D       1      16.7   
-------------------------

2.1.9 Using Thresholds

Let’s assume that we have an election with 1,000 total voters in which five parties (A, B, C, D, and E) have gained 100 (10%), 150 (15%), 300 (30%), 400 (40%), and 50 (5%) votes, respectively. In this constituency, there are 3 seats up for election, and all votes cast are valid. What is more, this hypothetical electoral system has a 7% vote threshold, meaning that parties must get at least 7% of the total unspoiled votes cast in order to participate on the distribution of seats. Party E would then be eliminated from this contest at the outset.

If D’Hondt divisor were employed in this hypothetical election, then party C would get 1 seat (or 33% of the seats), party D 2 seats (or 67% of the seats), and parties A and B none.

const <- c("A"=100, "B"=150,"C"=300, "D"=400, "E"=50)

HighestAverages(parties=names(const),
                votes=const,
                seats = 3, method = "dh",
                threshold = 7/100) 
Method: d'Hondt 
Divisors: 1 2 3 NA ... 
ENP: 3.51 (After): 1.8 
Gallagher Index:  55.1 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
   D       2      66.7   

   C       1      33.3   

   A       0        0    

   B       0        0    

   E       0        0    
-------------------------

The following example is taken from the 2015 general elections in Spain. The region of Valencia returned 15 seats allocated using the D’Hondt method in a closed list PR system. Only lists that poll at least 3% of the total vote (which includes spoiled votes “en blanco”) can be considered.

(Valencia <- c("PP"=442005, "Podemos"=395729, "PSOE"=275680,
              "C's"=221299, "IU"=68759, "PACMA"=14445, "Others"=35943)) 
     PP Podemos    PSOE     C's      IU   PACMA  Others 
 442005  395729  275680  221299   68759   14445   35943 
blanco=8738
nulo=11891
# Valencia returned 15 members
HighestAverages(parties=names(Valencia),
                votes=Valencia, 
                seats=15, method = "dh",
                threshold = 3/100)
Method: d'Hondt 
Divisors: 1 2 3 4 ... 
ENP: 4.37 (After): 3.57 
Gallagher Index:  6.33 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
  PP       5      33.3   

Podemos    5      33.3   

 PSOE      3       20    

  C's      2      13.3   

  IU       0        0    

Others     0        0    

 PACMA     0        0    
-------------------------

Next, the methods that divide the votes by mathematically derived quotas, such as the Droop quota, the Hare quota (or Hamilton/Vinton), and the Imperiali quota.

2.2 Largest Remainder Methods of Allocating Seats Proportionally

Highest averages methods allocate seats proportionally to the number of votes by dividing the number of votes required for each party by a quota. The quota may vary because it is the result of dividing the number of unspoiled votes (\(v\)) by some whole number close to the number of seats that would next be assigned (\(s\)). In what follows are illustrative examples of the operation of some largest remainders formulas in an eight member district with the same four parties of the previous examples.

2.2.1 Hare quota

The Hare quota is obtained by quota: \(\frac{v}{s}\).

LargestRemainders(parties=names(lijphart),
                  votes=lijphart, 
                  seats = 8, method = "hare") 
Method: Hare 
Divisors: 12500 NA NA NA ... 
ENP: 3.36 (After): 4 
Gallagher Index:  56.75 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
  NA       1       25    

  NA       1       25    

  NA       1       25    

  NA       1       25    

  NA       0        0    

  NA       0        0    

  NA       0        0    

  NA       0        0    

  NA       0        0    

  NA       0        0    

  NA       0        0    

  NA       0        0    
-------------------------

2.2.2 Droop quota

The Droop quota is obtained by quota: \(\frac{v}{(s + 1)}+1\).

LargestRemainders(parties=names(lijphart), 
                  votes=lijphart, 
                  seats = 8, method = "droop") 
Method: Droop 
Divisors: 11112.11 NA NA NA ... 
ENP: 3.36 (After): 4 
Gallagher Index:  56.75 
 

-------------------------
 Party   Seats   % Seats 
------- ------- ---------
  NA       1       25    

  NA       1       25    

  NA       1       25    

  NA       1       25    

  NA       0        0    

  NA       0        0    

  NA       0        0    

  NA       0        0    

  NA       0        0    

  NA       0        0    

  NA       0        0    

  NA       0        0    
-------------------------

2.2.3 Hagenbach-Bischoff

The Hagenbach-Bischoff quota is obtained by \(\frac{v}{(s + 1)}\).

LargestRemainders(parties=names(lijphart),
                  votes=lijphart, 
                  seats = 8, method = "hagb") 

2.2.4 Imperiali quota

The Imperiali quota is obtained by \(\frac{v}{(s + 2)}\). For Italian elections during the 1950s, the quota used was a reinforced version of that quota: \(\frac{v}{(s + 3)}\).

# The 1946 Italian Constituent Assembly election results: parties and unspoiled votes

Italy = data.frame(party=c("DC", "PSIUP", "PCI", "UDN", "UQ", "PRI",
                            "BNL", "PdA", "MIS", "PCd'I", "CDR",
                           "PSd'Az", "MUI", "PCS", "PDL", "FDPR"),
                   votes=c(8101004, 4758129, 4356686, 1560638,  1211956,
                           1003007, 637328, 334748, 171201, 102393,
                           97690, 78554, 71021, 51088, 40633, 21853))
with(Italy, LargestRemainders(parties=party,
                              votes=votes, seats = 556,
                              method = "imperiali") )
with(Italy, LargestRemainders(parties=party,
                              votes=votes, seats = 556,
                              method = "imperiali.adj") )

2.3 Suitable output for recycling within RMarkdown documents

The output produced by HighestAverages() and LargestRemainders() functions is of class data.frame, which R users are already familiar with, and makes the process of using the output with other applications very straightforward. Let’s take the data from 2014 Brazilian legislative elections. I will look at one electoral district–the state of Ceará–to compare how that caucus would look like if different apportionment methods were in place, keeping voters’ preference constant.

# Results for the state legislative house of Ceará (2014):
Ceara <- c("PCdoB"=187906, "PDT"=326841,"PEN"=132531, "PMDB"=981096,
           "PRB"=2043217,"PSB"=15061, "PSC"=103679, "PSTU"=109830,
           "PTdoB"=213988, "PTC"=67145, "PTN"=278267)

Once the data is loaded, producing a table with seat apportionment results is effortless with packages like knitr, pander, gtable, xtable, etc. In the following, I demonstrate this using the kable() function from the knitr package.

mytable = HighestAverages(parties=names(Ceara), 
                          votes=Ceara,
                          seats = 42, method = "dh") 
Method: d'Hondt 
Divisors: 1 2 3 4 ... 
ENP: 3.65 (After): 3.14 
Gallagher Index:  47.01 
 
library(knitr)

kable(mytable, align=c("l","c","c"), caption="Outcome under d'Hondt")
Outcome under d’Hondt
Party Seats % Seats
PRB 21 50.0
PMDB 10 23.8
PDT 3 7.1
PTN 2 4.8
PTdoB 2 4.8
PCdoB 1 2.4
PEN 1 2.4
PSC 1 2.4
PSTU 1 2.4
PSB 0 0.0
PTC 0 0.0

If you rather prefer to visualize data using graphs, that’s fine. I’ve chosen a bar plot with colors alluding to the parties’ identification colors. The graph is made with ggplot2 library along with the SciencesPo theme theme_fte, which mimics the colors used in the http://fivethirtyeight.com.

gg <- ggplot()
gg <- gg +  geom_bar( data = mytable, aes(x = reorder(Party, -Seats), y = Seats, fill = Party), stat = "identity", alpha=.9)
gg <- gg + geom_label(data = mytable,
aes(x = reorder(Party, -Seats), y= Seats + 1, label = Seats), hjust = .5)
gg <- gg + scale_y_continuous(expand = c(0, 0), limits = c(0, 25))
gg <- gg + scale_fill_party("BRA")
gg <- gg + labs(list(x = "", y = "# Seats obtained",
title = "The 2014 election in the Ceará State (seats won by party)"))
gg <-  gg + theme_fte(base_size = 10, base_family = "Tahoma")
gg

Next, I use the same example above to make a plot comparing three highest-averages formulas, D’Hondt, Imperiali, and Saint-Laguë. I’ve chosen a plot resembling a Cleveland dot plot (something between a bar and dot plot), and the SciencesPo theme.

out1 = HighestAverages(
  parties = names(Ceara),
  votes = Ceara,
  seats = 42,
  method = "dh"
  )
Method: d'Hondt 
Divisors: 1 2 3 4 ... 
ENP: 3.65 (After): 3.14 
Gallagher Index:  47.01 
 
  out2 = HighestAverages(
  parties = names(Ceara),
  votes = Ceara,
  seats = 42,
  method = "imperiali"
  )
Method: Imperiali 
Divisors: 1 1.5 2 2.5 ... 
ENP: 3.65 (After): 2.48 
Gallagher Index:  52.15 
 
  out3 = HighestAverages(
  parties = names(Ceara),
  votes = Ceara,
  seats = 42,
  method = "sl"
  )
Method: Sainte-Laguë 
Divisors: 1 3 5 7 ... 
ENP: 3.65 (After): 3.74 
Gallagher Index:  43.99 
 
  # add the method:
  out1$Method = "d'Hondt"
  out2$Method = "Imperiali"
  out3$Method = "Saint-Laguë"
  
 data <- rbind(out1, out2, out3)
2014 Legislative Election in Ceará (M=42)

2014 Legislative Election in Ceará (M=42)

3 Measures of Political Diversity

  Democratic   Republican  Independent  Libertarian Constitution 
     0.48100      0.50900      0.00380      0.00320      0.00120 
       Green       Others 
     0.00096      0.00084 
PoliticalDiversity(US2004); # ENEP (laakso/taagepera) method 
[1] 2.039
PoliticalDiversity(US2004, index= "golosov");
[1] 2.1

The Herfindahl-Hirschman Index (HDI) is a well established tool to assess the degree of competition in a market (or, the closeness to a monopolistic market structure), with low values indicating a high degree of competition and, conversely, higher values betraying closeness to a monopoly. In this sense, it has been used by political scientists as a mesure of political competition. In fact, the more common version is the inverted HDI (or 1 - HDI).

PoliticalDiversity(US2004, index= "inv.herfindahl");
[1] 0.51
# Compares to:
Herfindahl(US2004)
[1] 0.4905

Considers the following data.frame with electoral results for the 1999 election in Helsinki. Seats were allocated using both Saint-Laguë and D’Hondt methods, so we can compare the effect of the allocation formulas on the effective number of parties.

# Helsinki's 1999 election:
Helsinki
   votes seats.SL seats.dH
1  68885        5        5
2  18343        1        1
3  86448        6        7
4  21982        1        1
5  51587        4        4
6  27227        2        2
7   8482        1        0
8   7250        0        0
9    365        0        0
10  2734        0        0
11  1925        0        0
12   475        0        0
13  1693        0        0
14   693        0        0
15   308        0        0
16   980        0        0
17   560        0        0
18   590        0        0
19   185        0        0
PoliticalDiversity(Helsinki$votes); #ENP given votes
[1] 5.453
PoliticalDiversity(Helsinki$seats.SL); #ENP for Saint-Lague 
[1] 4.762
PoliticalDiversity(Helsinki$seats.dH); #ENP for D'Hondt
[1] 4.167

4 Measures of Proportionality

What is electoral disproportionality? A perfectly proportional election is one that every party wins seats in exact proportion to its share of votes. That is, a party with 25% of the votes wins 25% of the seats, a party with 5% of the votes wins 5% of the seats, and so on. This condition hardily holds in reality. To measure and compare the level of disproportionality from this ideal there are quite a few methods one can use. However, which one measures it best is far from clear. One should consider, why larger party deviations should be potentiated while smaller ones attenuated, or vice-versa.

How do we measure (dis)proportionality in practice? Let’s consider the following two real-data examples taken from Wikipedia. These two sets of data refer to subnational elections, one from Queensland (Australia) and the other from Quebec (Canada).

# 2012 Queensland state elecion:
Queensland
   party   votes pvotes seats pseats
1    LNP 1214553  49.65    78  87.64
2    ALP  652092  26.66     7   7.87
3 Katter  282098  11.50     2   2.25
4 Greens  184147   7.53     0   0.00
5    Ind   77282   3.16     2   2.25
6 Others   35794   1.47     0   0.00
# 2012 Quebec provincial election:
Quebec
   party   votes pvotes seats pseats
1     PQ 1393703  31.95    54   43.2
2    Lib 1360968  31.20    50   40.0
3    CAQ 1180235  27.05    19   15.2
4     QS  263111   6.03     2    1.6
5 Option   82539   1.89     0    0.0
6  Green   43394   0.99     0    0.0
7 Others   38738   0.89     0    0.0

Following the years, most of the standalone functions used to compute proportionality measures methods were encompassed in a single function Proportionality(), and the original function being deprecated.

4.1 Rae’s Proportionality Index

The Rae’s proportionality score also known as RID (Rae index of disproportionality) is calculated as: the sum of the absolute differences \(|v_i - s_i|\) divided by the number of parties (\(v_i > 0.5\) percent). It measures the average deviation per party.

\[Index = \frac{1}{n}\sum_{i=1}^{n}\,|v_i - s_i|\]

Where, \(v_i\) = the votes of party i, \(s_i\) = the share of seats of party i, \(n\) = the raw number of parties.

with(Queensland, Proportionality(pvotes, pseats, 
                     index = "Rae") )

Rae's Index :  0.127 
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "Rae") )

Rae's Index :  0.057 

4.2 Loosemore-Hanby’s Proportionality Index

The Loosemore-Hanby’s score (LHI) is calculated as: the half of the sum of the absolute differences \(|v_i - s_i|\). It measures the (half) total deviation, and the purpose is to measure the total party over-representation.

\[Index = \frac{1}{2}\sum_{i=1}^{n}\,|v_i - s_i|\]

with(Queensland, Proportionality(pvotes, pseats, 
                     index = "Loosemore-Hanby") )

Loosemore-Hanby's Index :  0.38 
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "Loosemore-Hanby") )

Loosemore-Hanby's Index :  0.201 

4.3 Gallagher’s Proportionality Index (Least Squares Index)

The Gallagher’s Index also known as the “Least Squares Index” is calculated as:

\[Index = \sqrt{\frac{1}{2}\sum_{i=1}^{n}\,(v_i - s_i)^{2}}\]

sqrt(sum((V-S)^2)/2). It’s considered as a hybrid index between Rae’s and Loosemore-Hanby’s indices. It’s also used the inverted version this index, calculated as 1 - (sqrt(sum((V - S)^2)/2)).

with(Queensland, Proportionality(pvotes, pseats, 
                     index = "Gallagher") )

Gallagher's Index :  0.311 
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "Gallagher") )

Gallagher's Index :  0.136 
## The inverted version
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "inv.Gallagher") )

Gallagher's Index (inverted) :  0.864 

4.4 Modified Gallagher Proportionality Index

Koppel and Diskin (2009) set forth a modified version of the Gallagher score computed as: sqrt(sum((V* - S*)^{2})/2), where \(V*\) is V/sum({V_i}2){1/2}, and \(S*\) is S/sum({S_i}{2}){1/2}.

\[Index = \sqrt{\frac{\sum_{i=1}^{n}\,(v_i^* - s_i^*)^{2}}{2}}\]

Where \(v_i^*\) is

The inverted version can be obtained by subtracting 1 from the computed score.

with(Queensland, Proportionality(pvotes, pseats, 
                     index = "mod.Gallagher") )

with(Quebec, Proportionality(pvotes, pseats, 
                     index = "mod.Gallagher") )

## The inverted version
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "mod.inv.Gallagher") )

4.5 Rose’s Proportionality Index

The Rose proportionality index (RPI) is computed by the sum the absolute differences between the fraction of votes the parties received and their fraction of seats. A division by 2 is used to standardize values between 0 and 1, and a subtraction from 1 is used so that higher values correspond to smaller differences. The Rose’s Index is essentially the inverted version of the Loosemore-Hanby’s Index; thus, 1 - LHI = RPI.

with(Queensland, Proportionality(pvotes, pseats, 
                     index = "Rose") )

Rose's Index :  0.62 
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "Rose") )

Rose's Index :  0.8 

4.6 Grofman’s Proportionality Index

The Grofman index calculated as the sum the absolute differences between the fraction of the votes and seats for each political group. Then, a division by the effective number of parties is applied to make the measure less sensitive to peripherical parties.

\[Index = \frac{1}{N}\sum_{i=1}^{n}\,|v_i - s_i|\]

\(v_i\) = the votes of the party, \(s_i\) = share of political seats, N = the effective number of parties

with(Queensland, Proportionality(pvotes, pseats, 
                     index = "Grofman") )

Grofman's Index :  0.294 
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "Grofman") )

Grofman's Index :  0.074 
## The inverted version:
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "inv.Grofman") )

Grofman's Index (inverted) :  0.074 

4.7 Modified Grofman’s Proportionality Index

I will write soon…

4.8 Lijphart’s Proportionality Index

\[Index = \max\big(|v_i - s_i|\big)\]

with(Queensland, Proportionality(pvotes, pseats, 
                     index = "Lijphart") )

Lijphart's Index :  0.38 
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "Lijphart") )

Lijphart's Index :  0.113 
## The inverted version:
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "invlijphart") )

Lijphart's Index :  0.888 

4.9 Farina’s Proportionality Index

with(Queensland, Proportionality(pvotes, pseats, 
                     index = "Farina") )

Farina's Index :  0.456 
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "Farina") )

Farina's Index :  0.308 

4.10 Cox-Shugart’s Proportionality Measure (Regression Index)

This function calculates the Cox-Shugart measure of proportionality. It provides the slope of the regression line. For perfect representation, a score of 1 is calculated, for values smaller than 1, smaller groups in population are numerically over-represented. The Cox-Shugart measure of proportionality indicates the direction of mis-representation. It is also known as the regression index.

\[Regression - Index =\frac{\sum\,{v_1}{s_i}}{\sum\,{v_i^2}}\]

with(Queensland, Proportionality(pvotes, pseats, 
                     index = "Cox-Shugart") )

Cox-Shugart Index :  1.71 
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "Cox-Shugart") )

Cox-Shugart Index :  1.21 
## The inverted version:
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "inv.Cox-Shugart") )

Cox-Shugart Index (inverted) :  0.713 

4.11 Sainte-Laguë Index

The Sainte-Laguë index is a measure of disproportionality that is minimized by Sainte-Laguë (Webster). The index is smiply the sum of, over all parties (or other distinct groups), \(((V_i - S_i)^{2} / V_i)\), where \(V_i\) is the share of votes for party (or group) \(i\), and \(S_i\) is its share of seats. If there were as many seats as voters, then \(V_i - S_i\) would be 0 and \(0/x\) is 0 for any \(x != 0\), so in the case of perfect proportionality, this index is 0. Because Sainte-Laguë (Webster) is considered the least biased Divisor method, and immune to paradox, Gallagher (1991) recommends using Sainte-Laguë as the standard measure of disproportionality. The inverted version of this index is also very common \(((S_i - V_i)^{2}/V_i)\).

\[SL - Index = \sum_{i=1}^{n}\, \frac{1}{v_i}\,(v_i - s_i)^{2} = \sum_{i=1}^{n}\,{v_i}(1 - \frac{s_i}{v_i})^{2}\]

with(Queensland, Proportionality(pvotes, pseats, 
                     index = "Sainte-Lague") )

Sainte-Lague's Index :  Inf 
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "Sainte-Lague") )

Sainte-Lague's Index :  Inf 
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "inv.Sainte-Lague") )

Sainte-Lague's Index (inverted) :  0.187 

4.12 D’Hondt (Jefferson) Index

Another option to measuring party proportionality is to compute the D’Hondt score of proportionality. As it goes above 1, more seats are apportioned than the equivalent fraction of votes, and less seats than votes otherwise.

\[Index =\max\bigg(\frac{s_i}{v_i}\bigg)\]

with(Queensland, Proportionality(pvotes, pseats, 
                     index = "DHondt") )

D'Hondt Index :  1.764 
with(Quebec, Proportionality(pvotes, pseats, 
                     index = "DHondt") )

D'Hondt Index :  1.352 

4.13 Hamilton Index

I will write soon…

4.14 Gini Disproportionality Index

I will write soon…

4.15 Monroe’s Inequity Index

I will write soon…

\[Index = \sqrt{ \frac{\sum(v_i - s_i)^{2}}{1 +\sum(v_i/100)^{2}} }\]

5 Measures of Inequality and Concentration

5.1 Gini Index

I will write soon…

5.2 Atkinson’s Index

\[Index = 1 - \bigg[ \frac{1}{N}\sum_{i=1}^{N}\:\bigg(\frac{y_i}{y}\bigg)^{1-e}\:\bigg]^\frac{1}{(1-e)}\], for \(\epsilon \neq 1\)

\[Index = {\displaystyle 1 - \frac{\prod_{i=1}^{N}\big(y_i^{(1/N)}\big)}{\bar{y}} }\], for \(\epsilon = 1\)

5.3 Herfindahl’s Index

5.4 Rosenbluth’s Index

6 R Session Details

 setting  value                       
 version  R version 3.3.0 (2016-05-03)
 system   x86_64, darwin14.5.0        
 ui       X11                         
 language (EN)                        
 collate  C                           
 tz       America/Sao_Paulo           
 date     2016-08-04                  

 package    * version    date       source                            
 R6           2.1.2      2016-01-26 CRAN (R 3.3.0)                    
 Rcpp         0.12.6     2016-07-19 CRAN (R 3.3.0)                    
 SciencesPo * 1.4.1      2013-08-27 CRAN                              
 assertthat   0.1        2013-12-06 cran (@0.1)                       
 chron        2.3-47     2015-06-24 cran (@2.3-47)                    
 codetools    0.2-14     2015-07-15 CRAN (R 3.3.0)                    
 colorspace   1.2-6      2015-03-11 cran (@1.2-6)                     
 crayon       1.3.2      2016-06-28 CRAN (R 3.3.0)                    
 data.table   1.9.6      2015-09-19 cran (@1.9.6)                     
 devtools   * 1.12.0     2016-06-24 CRAN (R 3.3.0)                    
 digest       0.6.9      2016-01-08 CRAN (R 3.3.0)                    
 evaluate     0.9        2016-04-29 CRAN (R 3.3.0)                    
 formatR      1.4        2016-05-09 CRAN (R 3.3.0)                    
 ggplot2    * 2.1.0.9000 2016-08-04 Github (hadley/ggplot2@91859da)   
 gtable       0.2.0      2016-02-26 cran (@0.2.0)                     
 highr        0.6        2016-05-09 CRAN (R 3.3.0)                    
 htmltools    0.3.5      2016-03-21 CRAN (R 3.3.0)                    
 httpuv       1.3.3      2015-08-04 CRAN (R 3.3.0)                    
 knitr      * 1.13       2016-05-09 CRAN (R 3.3.0)                    
 labeling     0.3        2014-08-23 cran (@0.3)                       
 lubridate    1.5.6      2016-04-06 cran (@1.5.6)                     
 magrittr     1.5        2014-11-22 CRAN (R 3.3.0)                    
 memoise      1.0.0      2016-01-29 CRAN (R 3.3.0)                    
 mime         0.5        2016-07-07 CRAN (R 3.3.0)                    
 munsell      0.4.3      2016-02-13 cran (@0.4.3)                     
 pander       0.6.0      2015-11-23 cran (@0.6.0)                     
 plyr         1.8.4.9000 2016-07-27 Github (hadley/plyr@fe19241)      
 rmarkdown    0.9.6.14   2016-07-27 Github (rstudio/rmarkdown@cb74ee5)
 roxygen2     5.0.1      2015-11-11 CRAN (R 3.3.0)                    
 rstudioapi   0.6        2016-06-27 CRAN (R 3.3.0)                    
 scales     * 0.4.0      2016-02-26 cran (@0.4.0)                     
 shiny        0.13.2     2016-03-28 CRAN (R 3.3.0)                    
 stringi      1.1.1      2016-05-27 CRAN (R 3.3.0)                    
 stringr      1.0.0      2015-04-30 CRAN (R 3.3.0)                    
 testthat     1.0.2      2016-04-23 CRAN (R 3.3.0)                    
 tibble       1.1        2016-07-04 cran (@1.1)                       
 withr        1.0.2      2016-06-20 CRAN (R 3.3.0)                    
 xtable       1.8-2      2016-02-05 CRAN (R 3.3.0)                    
 yaml         2.1.13     2014-06-12 CRAN (R 3.3.0)                    

7 References

Cowell, F. A. (2000) Measurement of Inequality in Atkinson, A. B. / Bourguignon, F. (Eds): Handbook of Income Distribution. Amsterdam.

Benoit, Kenneth. (2000) Which Electoral Formula is the Most Proportional? A New Look with New Evidence. Political Analysis 8(4): 381-388.

Blais, A., and L. Massicotte (1997) Electoral Formulas: A Macroscopic Perspective, European Journal of Political Research, 32, 107–129.

Gallagher, Michael and Paul Mitchell (2005) The Politics of Electoral Systems. Oxford University Press.

Gallagher, Michael (1992) Comparing Proportional Representation Electoral Systems: Quotas, Thresholds, Paradoxes and Majorities. British Journal of Political Science, 22, 4, 469-496.

Gallagher, M. (1991) Proportionality, disproportionality and electoral systems. Electoral Studies 10(1):33-51.

Golosov, Grigorii (2010) The Effective Number of Parties: A New Approach. Party Politics, 16: 171-192.

Laakso, Markku and Rein Taagepera (1979) Effective Number of Parties: A Measure with Application to West Europe. Comparative Political Studies, 12: 3-27.

Lijphart, Arend (1994) Electoral Systems and Party Systems: A Study of Twenty-Seven Democracies, 1945-1990. Oxford University Press.

Koppel, M. and Diskin, A. (2009) Measuring disproportionality, volatility and malapportionment: axiomatization and solutions. Social Choice and Welfare 33(2):281-6.

Mackie, T. T. and Rose, R. (1991) The International Almanac of Electoral History. Macmillan, Basingstoke.

Monroe, B. L. (1994) Disproportionality and Malapportionment: Measuring Electoral Inequity. Electoral Studies 13, 132–49.

Nicolau, Jairo (2008) Sistemas Eleitorais. Rio de Janeiro, FGV.

Norris, Pippa (1997) Choosing electoral systems: proportional, majoritarian and mixed systems.

Rae, D. (1967) The Political Consequences of Electoral Laws. London: Yale University Press.

Taagepera, R., and B. Grofman (2003) Mapping the indices of seats-votes disproportionality and inter-election volatility. Party Politics 9, 6: 659-77.

Taagepera, Rein and Matthew S. Shugart (1989) Seats and Votes: The Effects and Determinants of Electoral Systems. New Haven: Yale University Press.

Marcelino, Daniel. 2016. SciencesPo: A Tool Set for Analyzing Political Behavior Data. http://CRAN.R-project.org/package=SciencesPo.

Wickham, Hadley. 2009. Ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. http://ggplot2.org.

Xie, Yihui. 2016. Knitr: A General-Purpose Package for Dynamic Report Generation in R. https://CRAN.R-project.org/package=knitr.