Calculate cumulative score vectors for each element.
Usage
cumulativeScores(powerRelation, elements = powerRelation$elements)
cumulativelyDominates(powerRelation, e1, e2, strictly = FALSE)
Arguments
- powerRelation
A
PowerRelation
object created byPowerRelation()
oras.PowerRelation()
- elements
Vector of elements of which to calculate their scores. By default, the scores of all elements in
powerRelation$elements
are considered.- e1, e2
Elements in
powerRelation$elements
- strictly
If
TRUE
, check ifp1
strictly dominatesp2
Value
Score function returns a list of type CumulativeScores
and length of powerRelation$elements
(unless parameter elements
is specified).
Each index contains a vector of length powerRelation$eqs
, cumulatively counting up the number of
times the given element appears in each equivalence class.
cumulativelyDominates()
returns TRUE
if e1
cumulatively dominates e2
, else FALSE
.
Details
An element's cumulative score vector is calculated by cumulatively adding up the
amount of times it appears in each equivalence class in the powerRelation
.
I.e., in a linear power relation with eight coalitions, if element 1 appears in coalitions placed at 1, 3, and 6,
its score vector is [1, 1, 2, 2, 2, 3, 3, 3].
Dominance
\(i\) dominates \(j\) if, for each index \(x, \textrm{Score}(i)_x \geq \textrm{Score}(j)_x\).
\(i\) strictly dominates \(j\) if there exists an \(x\) such that \(\textrm{Score}(i)_x > \textrm{Score}(j)_x\).
References
Moretti S (2015). “An axiomatic approach to social ranking under coalitional power relations.” Homo Oeconomicus, 32(2), 183--208.
Moretti S, Öztürk M (2017). “Some axiomatic and algorithmic perspectives on the social ranking problem.” In International Conference on Algorithmic Decision Theory, 166--181. Springer.
See also
Other ranking solution functions:
L1Scores()
,
L2Scores()
,
LPSScores()
,
LPScores()
,
copelandScores()
,
kramerSimpsonScores()
,
lexcelScores()
,
ordinalBanzhafScores()
Examples
pr <- as.PowerRelation("12 > 1 > 2")
# `1`: c(1, 2, 2)
# `2`: c(1, 1, 2)
cumulativeScores(pr)
#> $`1`
#> [1] 1 2 2
#>
#> $`2`
#> [1] 1 1 2
#>
#> attr(,"class")
#> [1] "CumulativeScores"
# calculate for selected number of elements
cumulativeScores(pr, c(2))
#> $`2`
#> [1] 1 1 2
#>
#> attr(,"class")
#> [1] "CumulativeScores"
# TRUE
d1 <- cumulativelyDominates(pr, 1, 2)
# TRUE
d2 <- cumulativelyDominates(pr, 1, 1)
# FALSE
d3 <- cumulativelyDominates(pr, 1, 1, strictly = TRUE)
stopifnot(all(d1, d2, !d3))