Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

pladmm

Fit a Plackett-Luce Model with Linear Predictor for Log-worth


Description

Fit a Plackett-Luce model where the log-worth is predicted by a linear function of covariates. The rankings may be partial (each ranking completely ranks a subset of the items), but ties are not supported.

Usage

pladmm(rankings, formula, data, rho = 1, n_iter = 500, rtol = 1e-04)

Arguments

rankings

a "rankings" object, or an object that can be coerced by as.rankings.

formula

a formula specifying the linear model for log-worth.

data

a data frame containing the variables in the model.

rho

the penalty parameter in the penalized likelihood, see details.

n_iter

the maximum number of iterations (also for inner loops).

rtol

the convergence tolerance (also for inner loops)

Details

The log-worth is modelled as a linear function of item covariates:

log α_i = β_0 + β_1 x_{i1} + ... + β_p x_{ip}

where β_0 is fixed by the constraint that ∑_i α_i = 1.

The parameters are estimated using an Alternating Directions Method of Multipliers (ADMM) algorithm proposed by Yildiz (2020). ADMM alternates between estimating the worths α_i and the linear coefficients β_k, encapsulating them in a quadratic penalty on the likelihood:

L(β, α, u) = L(D|α) + ρ/2 ||Xβ - log α + u||^2_2 - ρ/2 ||u||^2_2

where u is a dual variable that imposes the equality constraints (so that log α converges to X β).

Note

This is a prototype function and the user interface is planned to change in upcoming versions of PlackettLuce.

References

Yildiz, I., Dy, J., Erdogmus, D., Kalpathy-Cramer, J., Ostmo, S., Campbell, J. P., Chiang, M. F. and Ioannidis, S. (2020) Fast and Accurate Ranking Regression In Proceedings of the Twenty Third International Conference on Artificial Intelligence and Statistics, 108, 77–-88.

Examples

if (require(prefmod)){
  data(salad)
  # data.frame of rankings for salad dressings A B C D
  # 1 = most tart, 4 = least tart
  salad[1:3,]

  # create data frame of corresponding features
  # (acetic and gluconic acid concentrations in salad dressings)
  features <- data.frame(salad = LETTERS[1:4],
                         acetic = c(0.5, 0.5, 1, 0),
                         gluconic = c(0, 10, 0, 10))

  # fit Plackett-Luce model based on covariates
  res_PLADMM <- pladmm(salad, ~ acetic + gluconic, data = features, rho = 8)
  ## coefficients
  coef(res_PLADMM)
  ## worth
  res_PLADMM$pi
  ## worth as predicted by linear function
  res_PLADMM$tilde_pi
  ## equivalent to
  drop(exp(res_PLADMM$x %*% coef(res_PLADMM)))

}

PlackettLuce

Plackett-Luce Models for Rankings

v0.4.0
GPL-3
Authors
Heather Turner [aut, cre] (<https://orcid.org/0000-0002-1256-3375>), Ioannis Kosmidis [aut] (<https://orcid.org/0000-0003-1556-0302>), David Firth [aut] (<https://orcid.org/0000-0003-0302-2312>), Jacob van Etten [ctb] (<https://orcid.org/0000-0001-7554-2558>)
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.