VGAM (version 1.0-4)

brat: Bradley Terry Model

Description

Fits a Bradley Terry model (intercept-only model) by maximum likelihood estimation.

Usage

brat(refgp = "last", refvalue = 1, ialpha = 1)

Arguments

refgp

Integer whose value must be from the set {1,…,\(M+1\)}, where there are \(M+1\) competitors. The default value indicates the last competitor is used---but don't input a character string, in general.

refvalue

Numeric. A positive value for the reference group.

ialpha

Initial values for the \(\alpha\)s. These are recycled to the appropriate length.

Value

An object of class "vglmff" (see vglmff-class). The object is used by modelling functions such as vglm.

Warning

Presently, the residuals are wrong, and the prior weights are not handled correctly. Ideally, the total number of counts should be the prior weights, after the response has been converted to proportions. This would make it similar to family functions such as multinomial and binomialff.

Details

The Bradley Terry model involves \(M+1\) competitors who either win or lose against each other (no draws/ties allowed in this implementation--see bratt if there are ties). The probability that Competitor \(i\) beats Competitor \(j\) is \(\alpha_i / (\alpha_i+\alpha_j)\), where all the \(\alpha\)s are positive. Loosely, the \(\alpha\)s can be thought of as the competitors' `abilities'. For identifiability, one of the \(\alpha_i\) is set to a known value refvalue, e.g., 1. By default, this function chooses the last competitor to have this reference value. The data can be represented in the form of a \(M+1\) by \(M+1\) matrix of counts, where winners are the rows and losers are the columns. However, this is not the way the data should be inputted (see below).

Excluding the reference value/group, this function chooses \(\log(\alpha_j)\) as the \(M\) linear predictors. The log link ensures that the \(\alpha\)s are positive.

The Bradley Terry model can be fitted by logistic regression, but this approach is not taken here. The Bradley Terry model can be fitted with covariates, e.g., a home advantage variable, but unfortunately, this lies outside the VGLM theoretical framework and therefore cannot be handled with this code.

References

Agresti, A. (2013) Categorical Data Analysis, 3rd ed. Hoboken, NJ, USA: Wiley.

Stigler, S. (1994) Citation patterns in the journals of statistics and probability. Statistical Science, 9, 94--108.

The BradleyTerry2 package has more comprehensive capabilities than this function.

See Also

bratt, Brat, multinomial, binomialff.

Examples

Run this code
# NOT RUN {
# Citation statistics: being cited is a 'win'; citing is a 'loss'
journal <- c("Biometrika", "Comm.Statist", "JASA", "JRSS-B")
mat <- matrix(c( NA, 33, 320, 284,
                730, NA, 813, 276,
                498, 68,  NA, 325,
                221, 17, 142,  NA), 4, 4)
dimnames(mat) <- list(winner = journal, loser = journal)
fit <- vglm(Brat(mat) ~ 1, brat(refgp = 1), trace = TRUE)
fit <- vglm(Brat(mat) ~ 1, brat(refgp = 1), trace = TRUE, crit = "coef")
summary(fit)
c(0, coef(fit))  # Log-abilities (in order of "journal")
c(1, Coef(fit))  # Abilities (in order of "journal")
fitted(fit)     # Probabilities of winning in awkward form
(check <- InverseBrat(fitted(fit)))  # Probabilities of winning
check + t(check)  # Should be 1's in the off-diagonals
# }

Run the code above in your browser using DataCamp Workspace