I'm looking for help towards finding a proper model for the problem I'm facing. I have a data set of teams that face each other and have a binary outcome Win/Lose. I want to establish some sort of relative ranking model fitted on the data such that

  • We can output the probability of win for one team given Team A vs Team B. If they have faced before, then it should be % of times A has beaten B, and vice versa.
  • We can output the probability of win for one team given Team B vs C. However, B and C have never faced off before but C has always defeated A at some $P$%. Taking this, we can infer some sort of probability that C will defeat B.
  • Establish some sort of objective ranking based on these W/Ls

Is there something like this that has already been developed? If so, I'd appreciate any guidance.

  • $\begingroup$ The Bradley-Terry model is, perhaps, the most canonical one. There are whole texts written on models for "paired comparisons". Note the naivety of the properties you list. Suppose A and B have played once and A beat B. Is it sensible to then predict that A's probability of beating B is 100%? $\endgroup$
    – cardinal
    Feb 10, 2016 at 22:32
  • $\begingroup$ Right. That is a naive assumption but good enough for my current objective. I also would like to infer the probability based on how they have faced relative to other teams should the team have a situation you have outlined. I've heard of the use of paired comparisons in sports, will reread. Thanks $\endgroup$
    – Kevin Pei
    Feb 10, 2016 at 22:57

2 Answers 2


I asked a similar question a while ago here.

I had great success with the PlayerRatings R package which implements the ELO method popularized by competitive chess along with some slightly more advanced methods such as Glicko and the package authors own method. The below pic shows historical team ranking for AFL clubs obtained using the 'Sticko' method. Model fitting parameters were optimized for binomial deviance over a training set using a genetic algorithm. AFL ranking history

By comparing the rankings you can obtain the probability of a team beating another.

  • $\begingroup$ Would you be able to give me a quick description of the features and methodologies of this package along with glicko, etc? The work i'm doing is very similar to what you have here. My primary goal is not to model win/lose rates but rather calculate a simple metric through cherry picking the MOST relevant subset of data. Looking at the rankings will help in terms of clustering similar skilled teams. Why would I do this? Two teams facing off is not enough data but if its Team A versus a cluster of similar skilled teams then thats what I am after. $\endgroup$
    – Kevin Pei
    Feb 10, 2016 at 23:28
  • $\begingroup$ From your first post it sounded like your primary goal WAS to model W/L rates. Would be be accurate to say what you want to do is look at what independent variables can be used to predict ranking/ability? $\endgroup$
    – dcl
    Feb 11, 2016 at 0:42
  • $\begingroup$ I've phrased my last comment pretty terribly. My primary goal is in-fact to model w/l and calculate elo, this goal then feeds into my next goal in finding relevant skilled teams that can be clustered in groups based on skill: e.g Tier 1,2,3, etc. $\endgroup$
    – Kevin Pei
    Feb 11, 2016 at 17:45
  • $\begingroup$ Ahh rightio. I think that could easily be done by clustering on the derived ratings/rankings. $\endgroup$
    – dcl
    Feb 12, 2016 at 5:27

If you're interested in use (more than in development), you should give a try to rankade, our ranking system. Rankade is free and easy to use, it can manage small to large playing groups, and it features rankings, stats, and more.

Ghosts' feature allows you to create a group without any account but your, so having an objective and skill based ranking as per your third request.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.