Social Ranking Solutions for Power Relations on Coalitions

The notion of power index has been widely used in literature to evaluate the influence of individual players (e.g., voters, political parties, nations, stockholders, etc.) involved in a collective decision situation like an electoral system, a parliament, a council, a management board, etc., where players may form coalitions. Traditionally this ranking is determined through numerical evaluation. More often than not however only ordinal data between coalitions is known. The package 'socialranking' offers a set of solutions to rank players based on a transitive ranking between coalitions, including through CP-Majority, ordinal Banzhaf or lexicographic excellence solution summarized by Tahar Allouche, Bruno Escoffier, Stefano Moretti and Meltem Öztürk (2020, ).


socialranking

Codecov testcoverage CRANstatus

The package socialranking offers functions to represent ordinal information of coalitions and calculate the power relation between elements or players.

Installation

Install the package directly from CRAN with:

install.packages("socialranking")

You can also install the development version of socialranking from GitHub with:

# install.packages("devtools")
devtools::install_github("jassler/socialranking")

Usage

The package socialranking offers functions to represent ordinal information of coalitions and calculate the power relation between elements or players.

Once installed, call library(socialranking) to load the package into your current environment.

PowerRelation() and as.PowerRelation() creates a PowerRelation object. createPowerset() is a convenient function to generate a PowerRelation() or as.PowerRelation() function call for all possible coalitions.

library(socialranking)
if(interactive()) {
  createPowerset(1:3, copyToClipboard = TRUE)
}

# pasted, rearranged, adjusted comparators
as.PowerRelation("
  123
  > 12
  ~ 13
  > 2
  ~ 23
  > 1
  > 3
")
#> 123 > (12 ~ 13) > (2 ~ 23) > 1 > 3

# equivalent
pr <- as.PowerRelation(
  list(c(1,2,3), c(1,2), c(1,3), c(2), c(2,3), c(1), c(3)),
  comparators = c(">", "~", ">", "~", ">", ">")
)

# equivalent
pr <- as.PowerRelation("123 > 12 ~ 13 > 2 ~ 23 > 1 > 3")
pr
#> 123 > (12 ~ 13) > (2 ~ 23) > 1 > 3

pr$elements
#> [1] 1 2 3
pr$eqs[[2]]
#> [[1]]
#> [1] 1 2
#> 
#> [[2]]
#> [1] 1 3

The functions used to analyze power relations can be grouped into comparison functions, score functions and ranking solutions. Ranking solutions produce a SocialRankingSolution object.

Comparison Functions Score Functions Ranking Solutions
dominates()
cumulativelyDominates() cumulativeScores()
cpMajorityComparison()^1 copelandScores() copelandRanking()
kramerSimpsonScores() kramerSimpsonRanking()
ordinalBanzhafScores() ordinalBanzhafRanking()
lexcelScores() lexcelRanking()
dualLexcelRanking()
L1Scores() L1Ranking()
LPScores() LPRanking()
LPSScores() LPSRanking()

^1 cpMajorityComparisonScore() is a faster alternative to cpMajorityComparison(), but it produces less data.

dominates(pr, 1, 2)
#> [1] FALSE

copelandRanking(pr)
#> 1 ~ 2 > 3

lexcelScores(pr, 1)
#> $`1`
#> [1] 1 2 0 1 0
#> 
#> attr(,"class")
#> [1] "LexcelScores"

PowerRelation objects can be turned into relations objects from the relations package using powerRelationMatrix() or as.relation().

Use browseVignettes("socialranking") for further information.

License

This package is licensed under GPL-3.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("socialranking")

1.2.0 by Felix Fritz, 2 years ago


https://github.com/jassler/socialranking


Report a bug at https://github.com/jassler/socialranking/issues


Browse source code at https://github.com/cran/socialranking


Authors: Felix Fritz [aut, cre] , Jochen Staudacher [aut, cph, ths] , Moretti Stefano [aut, cph, ths]


Documentation:   PDF Manual  


GPL-3 license


Imports relations, rlang, Rdpack

Suggests clipr, testthat, xfun, knitr, rmarkdown, covr, partitions


See at CRAN