Compute a Colley matrix model for a matchup.
elo.colley( formula, data, family = "binomial", weights, na.action, subset, k = 1, ..., running = FALSE, skip = 0 )
formula | A formula. See the help page for formulas for details. |
---|---|
data | A |
family | Arguments passed to |
weights | A vector of weights. Note that these weights are used in the Colley matrix creation, but not the regression. |
na.action | A function which indicates what should happen when the data contain NAs. |
subset | An optional vector specifying a subset of observations. |
k | The fraction of a win to be assigned to the winning team. See "details". |
... | Arguments passed to |
running | Logical, denoting whether to calculate "running" projected probabilities. If true, a model is fit for
group 1 on its own to predict group 2, then groups 1 and 2 to predict 3, then groups 1 through 3 to predict 4, etc.
Groups are determined in |
skip | Integer, denoting how many groups to skip before fitting the running models. This is helpful if groups are small, where glm would have trouble converging for the first few groups. The predicted values are then set to 0.5 for the skipped groups. |
See the vignette for details on this method.
The differences in assigned scores (from the coefficients of the Colley matrix regression) are fed into a logistic
regression model to predict wins or (usually) a linear model to predict margin of victory.
In this setting, 'k' indicates the fraction of a win to be assigned to the winning team
(and the fraction of a loss to be assigned to the losing team); setting k = 1
(the default)
emits the "Bias Free" ranking method presented by Colley.
It is also possible to adjust the regression by setting the second argument of
adjust()
. As in elo.glm
,
the intercept represents the home-field advantage. Neutral fields can be indicated
using the neutral()
function, which sets the intercept to 0.
Colley W.N. Colley's Bias Free College Football Ranking Method: The Colley Matrix Explained. 2002.
elo.colley(score(points.Home, points.Visitor) ~ team.Home + team.Visitor, data = tournament, subset = points.Home != points.Visitor) #> #> An object of class 'elo.colley', containing information on 8 teams and 51 matches. #>