https://github.com/jtfeld/elooptimized
Maximum-likelihood fitting of Elo scores
https://github.com/jtfeld/elooptimized
elo elo-rating maximum-likelihood-estimation
Last synced: 7 months ago
JSON representation
Maximum-likelihood fitting of Elo scores
- Host: GitHub
- URL: https://github.com/jtfeld/elooptimized
- Owner: jtfeld
- Created: 2018-09-05T16:44:38.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-05-21T22:49:57.000Z (about 2 years ago)
- Last Synced: 2025-10-22T03:49:13.074Z (7 months ago)
- Topics: elo, elo-rating, maximum-likelihood-estimation
- Language: R
- Homepage: https://jtfeld.github.io/EloOptimized/
- Size: 8.81 MB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.Rmd
- Changelog: NEWS.md
Awesome Lists containing this project
README
---
output: github_document
---
```{r, echo = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "README-"
)
```
```{r,echo = FALSE}
library(EloOptimized)
```
# EloOptimized
[](https://github.com/jtfeld/EloOptimized/actions/workflows/R-CMD-check.yaml)
[](https://cran.r-project.org/package=EloOptimized)
[](https://cran.r-project.org/package=EloOptimized)
[Package website](https://jtfeld.github.io/EloOptimized/)
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](https://www.nature.com/articles/srep35404). 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.
## Installation
```{r gh-installation, eval = FALSE}
# Current version on Github:
# install.packages("devtools")
devtools::install_github("jtfeld/EloOptimized")
# CRAN-approved version on CRAN:
install.packages("EloOptimized")
```
## Example
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.
```{r example, eval = FALSE}
# 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 = nba, k = 100, init_elo = 1000)
```
To recreate the results from the 2016 manuscript, use the following code:
```{r MS example, eval = FALSE}
# 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)
```