steph {PlayerRatings} | R Documentation |
The Stephenson Rating System
Description
Implements the Stephenson rating system for estimating the relative skill level of players in two-player games such as chess. It extends the Glicko method by including a second parameter controlling player deviation across time, a bonus parameter, and a neighbourhood parameter.
Usage
steph(x, status = NULL, init = c(2200,300), gamma = 0, cval = 10,
hval = 10, bval = 0, lambda = 2, history = FALSE, sort = TRUE,
rdmax = 350, ...)
Arguments
x |
A data frame containing four variables: (1) a numeric vector denoting the time period in which the game took place (2) a numeric or character identifier for player one (3) a numeric or character identifier for player two and (4) the result of the game expressed as a number, typically equal to one for a player one win, zero for a player two win and one half for a draw. |
status |
A data frame with the current status of the
system. If not |
init |
The rating vector at which to initialize a new player
not appearing in |
gamma |
A player one advantage parameter; either a single
value or a numeric vector equal to the number of rows in
|
cval |
The c parameter, which controls the increase in the
player deviations across time. Must be a single non-negative number.
Note that both |
hval |
The h parameter, which also controls the increase in the player deviations across time. Must be a single non-negative number. |
bval |
The bonus parameter, which gives a per game bonus to each player on the basis that players who play more often may improve irrespective of whether they win or lose. A single non-negative number. Note that this will create ratings inflation (i.e. ratings will increase over time). |
lambda |
The neighbourhood parameter, which shrinks player ratings towards their opponents. A single non-negative number. |
history |
If |
sort |
If |
rdmax |
The maximum value allowed for the rating deviation. |
... |
Not used. |
Details
The Stephenson rating system is a method for evaluating the skill of players. It was developed by Alec Stephenson in 2012 as a variant of his winning entry in a competition to find the most useful practical chess rating system, organized by Jeff Sonas on Kaggle, a platform for data prediction competitions. The precise details are given in the file doc/ChessRatings.pdf.
This implementation is written so that Glicko is obtained as a
special case upon setting all of the parameters hval
,
bval
and lambda
to zero. Default values are roughly
optimized for the chess data analyzed in the file
doc/ChessRatings.pdf, using the binomial deviance criterion.
Value
A list object of class "rating"
with the following
components
ratings |
A data frame of the results at the end of the
final time period. The variables are self explanatory except
for |
history |
A three dimensional array, or |
gamma |
The player one advantage parameter. |
cval |
The c parameter. |
hval |
The h parameter. |
bval |
The bonus parameter. |
lambda |
The neighbourhood parameter. |
type |
The character string |
References
Glickman, M.E. (1999) Parameter estimation in large dynamic paired comparison experiments. J. R. Stat. Soc. Ser. C: Applied Statistics, 48(3), 377-394.
Glickman, M.E. (2001) Dynamic paired comparison models with stochastic variances. Journal of Applied Statistics, 28, 673-689.
See Also
Examples
afl <- aflodds[,c(2,3,4,7)]
robj <- steph(afl)
robj
robj <- steph(afl[afl$Week==1,])
for(i in 2:max(afl$Week)) robj <- steph(afl[afl$Week==i,], robj$ratings)
robj