BTdecay {BTdecayLasso}R Documentation

Bradley-Terry Model with Exponential Decayed weighted likelihood


Exponential decay rate is applied to the likelihood function to achieve a better track of current abilities. When "decay.rate" is setting as 0, this is a standard Bradley-Terry Model whose estimated parameters are equivalent to package "BradleyTerry2". Further detailed description is attached in BTdecayLasso.


BTdecay(dataframe, ability, decay.rate = 0, fixed = 1, iter = 100)



Generated using BTdataframe given raw data.


A column vector of teams ability, the last row is the home parameter. The row number is consistent with the team's index shown in dataframe. It can be generated using BTdataframe given raw data.


The exponential decay rate. Usually ranging from (0, 0.01), A larger decay rate weights more importance to most recent matches and the estimated parameters reflect more on recent behaviour.


A teams index whose ability will be fixed as 0. The worstTeam's index can be generated using BTdataframe given raw data.


Number of iterations used in L-BFGS-B algorithm.


The standard Bradley-Terry Model defines the winning probability of i against j,

P(Y_{ij}=1)=\frac{\exp(τ h_{ij}^{t_{k}}+μ_{i}-μ_{j})}{1+\exp(τ h_{ij}^{t_{k}}+μ_{i}-μ_{j})}

τ is the home parameter and μ_{i} is the team i's ability score. h_{ij} takes 1 if team i is at home, -1 otherwise. Given, a complete tournament's result. The objective likelihood function with an exponential decay rate is,

∑_{k=1}^{n}∑_{i<j}\exp(-α t_{k})\cdot(y_{ij}(τ h_{ij}^{t_{k}}+μ_{i}-μ_{j})-\log(1+\exp(τ h_{ij}^{t_{k}}+μ_{i}-μ_{j})))

where n is the number of matches, α is the exponential decay rate and y_{ij} takes 0 if i is defeated by j, 1 otherwise. t_{k} is the time lag (time until now). This likelihood function is optimized using L-BFGS-B method with package optimr and summary() function with S3 method can be applied to view the outputs.


List with class "BT" contains estimated abilities and convergent code, 0 stands for convergence reaches, 1 stands for convergence not reaches. If 1 is returned, we suggest that decay rate should be set lower. Bradley-Terry model fails to model the situation when a team wins or loses in all matches. If a high decay rate is considered, a team who only loses or wins 1 matches long time ago will also causes the same problem.


Estimated ability scores


0 stands for convergent, 1 stands for not convergent


Decay rate of this model


##Initializing Dataframe
x <- BTdataframe(NFL2010)

##Standard Bradley-Terry Model optimization
y <- BTdecay(x$dataframe, x$ability, decay.rate = 0, fixed = x$worstTeam)

##Dynamic approximation of current ability scores using exponential decayed likelihood.
##If we take decay.rate = 0.005
##Match happens one month before will weight exp(-0.15)=0.86 on log-likelihood function
z <- BTdecay(x$dataframe, x$ability, decay.rate = 0.005, fixed = x$worstTeam)

[Package BTdecayLasso version 0.1.0 Index]