joint_additive: Joint Additive MOV Elo Ratings

Description Usage Arguments Value Details Examples

Description

This function calculates MOV Elo ratings using a joint additive model that combines information for both the win result and MOV result.

Usage

1
2
joint_additive(winners, losers, margin, k.margin, k.win, scale.margin,
  scale.win, data, default = 1500)

Arguments

winners.

Character vector or formula specifying the winners of each result

losers.

Character vector or formula specifying the losers of each result

margin.

Numeric vector vector or formula specifying the margin of victory, given as winner score - loser score

k.margin.

Numeric value of the learning rate to be applied to the MOV

k.win.

Numeric value of the learning rate to be applied to the win result

scale.margin.

Numeric scaling factor applied in the expectation step for the MOV

scale.win.

Numeric scaling factor applied in the expectation step for the win prediction

data.

Data frame containing winner, loser, and margin variables if using a data/formula specification.

default.

Numeric value of the initial rating to assign to new competitors

Value

A data frame with Elo ratings before and after each event result.

Details

Datasets should be ordered from first game result to last. Competitors must be uniquely and consistently identified in the winner and loser vectors. Missing values in the MOV variable will be omitted and will throw a warning.

The E-step for the joint additive model involves a linear model for the MOV and a logistic model for the win expectation. The expected margin for player i against j is:

\hat{MOV} = \frac{R_i - R_j}{σ_{margin}}

. For the win outcome:

\hat{W} = \frac{1}{1+10^({R_j - R_i}{σ_{win}})}

. In the standard Elo system, sigma_{win} = 400. A reasonable choice for σ_{margin} is 10 to 30 times the standard deviation of the MOV variable. The U-step for the joint additive model involves updates based on the residual for the MOV and win prediction. In terms of the ith player,

R_{i+1} = R_i + K_{margin} (MOV_{ij} - \hat{MOV}_{ij}) + K_{win} (W_{ij} - \hat{W}_{ij})

. Where W_{ij} is a 0-1 indicator for the win result. The unknown parameters are the constant learning rates K_{margin} and K_{win}. Typical values for K_{win} in the standard Elo system range from 20 to 40. A reasonable choice for K_{margin} is the standard deviation of the MOV variable.

Examples

1
2
# Grand Slam MOV Elo Rating
ratings <- joint_additive(~ winner, ~loser, ~ game_margin, data = atp_games, k.margin = 1.5, k.win = 24, scale.margin = 75, scale.win = 400)

GIGTennis/elomov documentation built on June 15, 2019, 12:01 a.m.