rank_distance: Distance between a set of rankings and a given rank sequence

View source: R/rank_distance.R

rank_distanceR Documentation

Distance between a set of rankings and a given rank sequence

Description

Compute the distance between a matrix of rankings and a rank sequence.

Usage

rank_distance(rankings, rho, metric, obs_freq = 1)

Arguments

rankings

A matrix of size N \times n_items of rankings in each row. Alternatively, if N equals 1, rankings can be a vector.

rho

A ranking sequence.

metric

Character string specifying the distance measure to use. Available options are "kendall", "cayley", "hamming", "ulam", "footrule" and "spearman".

obs_freq

Vector of observation frequencies of length N, or of length 1, which means that all ranks are given the same weight. Defaults to 1.

Details

The implementation of Cayley distance is based on a C++ translation of Rankcluster::distCayley \insertCiteGrimonprez2016BayesMallows.

Value

A vector of distances according to the given metric.

References

\insertAllCited

See Also

Other rank functions: expected_dist(), get_mallows_loglik(), rank_conversion, rank_freq_distr(), sample_mallows()

Examples


# Distance between two vectors of rankings:
rank_distance(1:5, 5:1, metric = "kendall")
rank_distance(c(2, 4, 3, 6, 1, 7, 5), c(3, 5, 4, 7, 6, 2, 1), metric = "cayley")
rank_distance(c(4, 2, 3, 1), c(3, 4, 1, 2), metric = "hamming")
rank_distance(c(1, 3, 5, 7, 9, 8, 6, 4, 2), c(1, 2, 3, 4, 9, 8, 7, 6, 5), "ulam")
rank_distance(c(8, 7, 1, 2, 6, 5, 3, 4), c(1, 2, 8, 7, 3, 4, 6, 5), "footrule")
rank_distance(c(1, 6, 2, 5, 3, 4), c(4, 3, 5, 2, 6, 1), "spearman")

# Difference between a metric and a vector
# We set the burn-in and thinning too low for the example to run fast
data0 <- sample_mallows(rho0 = 1:10, alpha = 20, n_samples = 1000,
                        burnin = 10, thinning = 1)

rank_distance(rankings = data0, rho = 1:10, metric = "kendall")

BayesMallows documentation built on Nov. 25, 2023, 5:09 p.m.