Fits a Bradley Terry model (intercept-only model) by maximum likelihood estimation.
brat(refgp = "last", refvalue = 1, ialpha = 1)
Integer whose value must be from the set
{1,…,
Numeric. A positive value for the reference group.
Initial values for the
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
.
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
.
The Bradley Terry model involves bratt
if there are ties). The probability that Competitor
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
Excluding the reference value/group, this function
chooses
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.
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.
# 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 DataLab