We apply Bradley-Terry Model to estimate teams' ability in paired comparison data. Exponential Decayed Log-likelihood function is applied for dynamic approximation of current rankings and Lasso penalty is applied for variance reduction and grouping. The main algorithm applies the Augmented Lagrangian Method described by Masarotto and Varin (2012)
Bradley-Terry model is used for ranking in sports tournament. Given the standard Bradley-Terry model, we use an exponential decay rate to weight its log-likelihood function and apply Lasso penalty to achieve a variance reduction and team grouping.
You can install BTdecayLasso from github with:
This is a basic example which shows you how to solve a common problem:
First, given raw datasets (five columns are home teams, away teams, home wins, away wins, time until now), we convert this dataset into a dataframe which can be used for other function's input.
NFL <- BTdataframe(NFL2010)
Then, we comput the whole Lasso path for further analysis's use. In this example, to track the dynamically changing abilities, we set 'decay.rate' to be 0.005. A higher decay rate will give more unbiased results for current abilites' estimation with a side effect of higher variance.
BTM <- BTdecayLasso(NFL$dataframe, NFL$ability, decay.rate = 0.005, fixed = NFL$worstTeam)
We can use 'plot' function to view the whole Lasso path.
The optimal model is selected using AIC criteria on HYBRID Lasso's run here.
BTO <- BTdecayLassoC(NFL$dataframe, NFL$ability, decay.rate = 0.005, fixed = NFL$worstTeam,model = BTM, criteria = "AIC", type = "HYBRID")summary(BTO)
Finally, we use bootstrapping to obtain the standard deviation of this choosen model with 100 times of simulation.
BT <- boot.BTdecayLasso(NFL$dataframe, NFL$ability, BTO$Optimal.lambda, decay.rate = 0.005,fixed = NFL$worstTeam, boot = 100)summary(BT)
NEWS.mdfile to track changes to the package.