Optimized Elo Rating Method for Obtaining Dominance Ranks

Provides an implementation of the maximum likelihood methods for deriving Elo scores as published in Foerster, Franz et al. (2016) .


Travis-CI Build Status

Package website

EloOptimized provides tools to implement the maximum likelihood methods for deriving Elo scores as published in Foerster, Franz et al. (2016). Chimpanzee females queue but males compete for social status. In addition, it provides functionality to efficiently generate traditional Elo scores using a simplified procedure that doesn't require the use of cumbersome presence matrices. Finally, it quickly generates a number of additional Elo-based indices (ordinal, normalized, cardinal, and categorical ranks and rank scores) of potential use to researchers, as outlined in the linked manuscript.


You can install EloOptimized from github with:



There are two functions of interest. Use eloratingopt() to calculate Elo scores using optimized Elo parameter values, or eloratingfixed() to calculate Elo scores using user-defined parameter values.

# to generate Elo scores using fixed initial Elo scores (1000) and a ML-fitted value for the K parameter:
nbaelo = eloratingopt(agon_data = nba, fit_init_elo = FALSE)
# to generate Elo scores using fixed default initial Elo scores and default K:
nbaelo = eloratingfixed(agon_data = nbadata, k = 100, init_elo = 1000)

To recreate the results from the 2016 manuscript, use the following code:

# Males, model type 1:
melo1 = eloratingopt(agon_data = chimpagg_m, pres_data = chimppres_m, fit_init_elo = F)
# Males, model type 3:
melo3 = eloratingopt(agon_data = chimpagg_m[101:nrow(chimpagg_m),], 
                     pres_data = chimppres_m, fit_init_elo = T)
# Females, model type 1: 
felo1 = eloratingopt(agon_data = chimpagg_f, pres_data = chimppres_f, fit_init_elo = F)
# Females, model type 3:
felo3 = eloratingopt(agon_data = chimpagg_f[101:nrow(chimpagg_f),], 
                     pres_data = chimppres_f, fit_init_elo = T)


EloOptimized 0.3.0

  • Added Travis-ci integration in preparation for submission to CRAN

EloOptimized 0.2.1

  • Updated documentation and parameter names
  • Removed AIC element from eloratingfixed output

EloOptimized 0.2.0

  • Added a NEWS.md file to track changes to the package.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.3.1 by Joseph Feldblum, 4 months ago


Report a bug at https://github.com/jtfeld/EloOptimized/issues

Browse source code at https://github.com/cran/EloOptimized

Authors: Joseph Feldblum [aut, cre] , Steffen Foerster [aut] , Mathias Franz [aut]

Documentation:   PDF Manual  

GPL-3 license

Imports dplyr, reshape2, BAMMtools, magrittr, lubridate, rlang

Suggests knitr, rmarkdown, ggplot2

See at CRAN