| scores | R Documentation |
Compute scores for the tuples of (ensembles of) endorelations.
## S3 method for class 'relation'
relation_scores(x,
method = c("ranks", "Barthelemy/Monjardet",
"Borda", "Kendall", "Wei",
"differential", "Copeland"),
normalize = FALSE, ...)
## S3 method for class 'relation_ensemble'
relation_scores(x,
method = c("Borda", "Kendall", "differential",
"Copeland"),
normalize = FALSE,
weights = 1, ...)
x |
an object inheriting from class |
method |
character string indicating the method (see Details). |
normalize |
logical indicating whether the score vector should be normalized to sum up to 1. |
weights |
Numeric vector of weights used in incidence aggregation, recycled as needed. |
... |
further arguments to be passed to methods. |
In the following, consider an endorelation R on n objects.
Let the in-degree I(x) and out-degree O(x)
of an object x be defined as the numbers of objects y such
that y R x and, respectively, x R y, and let D(x) =
I(x) - O(x) be the differential of x
(see \bibcitetRegenwetter+Rykhlevskaia:2004).
Note that I and O are given by
the column sums and row sums of the incidence matrix of R. If
R is a preference relation with a \le interpretation,
D(x) is the difference between the numbers of objects dominated
by x (i.e., < x) and dominating x (i.e., > x),
as “ties” cancel out.
relation_score() is generic with methods for relations and
relation ensembles. Available built-in score methods for the
relation method are as follows:
"ranks"generalized ranks. A linear transformation of
the differential D to the range from 1 to n. An
additional argument decreasing can be used to specify the
order of the ranks. By default, or if decreasing is true,
objects are ranked according to decreasing differential
(“from the largest to the smallest” in the \le
preference context) using (n + 1 - D(x)) / 2.
Otherwise, if decreasing is false, objects are ranked via
(n + 1 + D(x)) / 2 (“from the smallest to the largest”).
See \bibcitetRegenwetter+Rykhlevskaia:2004 for more details on
generalized ranks.
"Barthelemy/Monjardet"(M(x) + N(x) - 1) / 2,
where M(x) and N(x) are the numbers of objects y
such that y R x, and y R x and not x R y,
respectively. If R is a \le preference relation, we
get the number of dominated objects plus half the number of the
equivalent objects minus 1 (the “usual” average ranks minus
one if the relation is complete).
See \bibcitetBarthelemy+Monjardet:1981.
"Borda", "Kendall"the out-degrees. See \bibcitetBorda:1781 and \bibcitetKendall:1955.
"Wei"the eigenvector corresponding to the greatest
eigenvalue of the incidence matrix of the complement of R.
See \bibcitetWei:1952.
"differential", "Copeland"the differentials, equivalent to the negative net flow of \bibcitetBouyssou:1992, and also to the Copeland scores.
For relation ensembles, currently only
"differential"/"Copeland" and
"Borda"/"Kendall" are implemented. They are computed on
the aggregated incidences of the ensembles' relations.
Definitions of scores for “preference relations” R are
somewhat ambiguous because R can encode \le or \ge
(or strict variants thereof) relationships (and all such variants are
used in the literature). Package relations generally assumes a
\le encoding, and that scores in the strict sense should
increase with preference (the most preferred get the highest scores)
whereas ranks decrease with preference (the most preferred get the
lowest ranks).
A vector of scores, with names taken from the relation domain labels.
Barthelemy+Monjardet:1981, Borda:1781, Bouyssou:1992, Cook+Kress:1992, Kendall:1955, Regenwetter+Rykhlevskaia:2004, Wei:1952
## Example taken from Cook and Cress (1992, p.74)
I <- matrix(c(0, 0, 1, 1, 1,
1, 0, 0, 0, 1,
0, 1, 0, 0, 1,
0, 1, 1, 0, 0,
0, 0, 0, 1, 0),
ncol = 5,
byrow = TRUE)
R <- relation(domain = letters[1:5], incidence = I)
## Note that this is a "preference matrix", so take complement:
R <- !R
## Compare Kendall and Wei scores
cbind(
Kendall = relation_scores(R, method = "Kendall", normalize = TRUE),
Wei = relation_scores(R, method = "Wei", normalize = TRUE)
)
## Example taken from Cook and Cress (1992, p.136)
## Note that the results indicated for the Copeland scores have
## (erroneously?) been computed from the *unweighted* votes.
## Also, they report the votes as strict preferences, so we
## create the dual relations.
D <- letters[1:5]
X <- as.relation(ordered(D, levels = c("b", "c", "a", "d", "e")))
Y <- as.relation(ordered(D, levels = c("d", "a", "e", "c", "b")))
Z <- as.relation(ordered(D, levels = c("e", "c", "b", "a", "d")))
E <- relation_ensemble(X, Y, Z)
relation_scores(E, "Copeland")
relation_scores(E, "Borda", weights = c(4, 3, 2))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.