With the playoffs coming up, people are tipping their hats into the prediction arena. Most broadcasters just pick teams based on recent performance, matchups and who’s home. As a side note, I should tell everyone that these picks are based on internal models. While they might not be statistical in terms of using concrete data (some probably do use raw numbers), commentators still look at the data of who-beat-who, bye weeks, recent streaks and the “eye test” and internally weight each factor in some way that produces a prediction.

Other outlets are actually statistical in the usual sense. FiveThirtyEight uses ELO which produces a statistic estimating how good a team is. They use these statistics in projecting win probabilities for two teams.

One model that I like that’s simple (and hence everyone can understand it) is the Bradley-Terry model. This model in it’s simplest form, takes data of who beat who and gets a prediction probability. It has had popular application in Tennis predictions.

Think of it this way:

My Saints beat the Seahawks this season, who beat the AFC regular season champion Patriots. While my Saints have largely been a disappointment this season, the fact that they beat a quality opponent should show you that they at least have the potential to play up to high level teams.

Likewise the model would give the Saints a slightly higher probability of beating the Patriots head to head than they would have if the Seahawks lost to the Pats.

The Bradley-Terry model (which can be extended to incorporate random effects like who is home etc) looks at the results of all 256 regular season games and uses this information to get predictions. Essentially, the model for the probability that team j beats team k is:

P[j  \text{beats}  k]  = \frac{\exp[\lambda_j - \lambda_k]}{1+\exp[\lambda_j - \lambda_k]}

and the coefficients \lambda_j, \lambda_k are estimated through maximum likelihood estimation, i.e. choosing \lambda_1 , \lambda_2 , ... , \lambda_{31} (one team~Arizona~ is treated as the baseline team to compare to) to maximize the following binomial likelihood

L(Data | \lambda_1, ..., \lambda_{31}) = \prod \limits_{k=0}^{31} \prod \limits_{j \ne k} \left[\frac{\exp[\lambda_j - \lambda_k]}{1+\exp[\lambda_j - \lambda_k]} \right]^{n_{jk}} \left[1-\frac{\exp[\lambda_j - \lambda_k]}{1+\exp[\lambda_j - \lambda_k]} \right]^{N_{jk}-n_{jk}}

where \lambda_0 = 0, N_{jk} is the number of times that teams j and k play and n_{jk} is the number of times that team j beats team k.

Some Drawbacks: One issue is that every NFL team ONLY plays 13/31 other teams (~41%). This limits some of the information, but also highlights the need to make third party comparisons-i.e. looking at game results for a common opponent between two teams. This means that we will be unlikely to get extreme prediction probabilities of victory (say >.8), but if the season was as long as say the NBA, we could get more stern predictions.

In college football, teams play 11/347 total division I schools (~3%). So the Bradley-Terry model is probably not useful [Research extension here!]

The last thing I’ll mention is since the NFL is split into two conferences for the playoffs, we have much more information. Teams play 11/15 other teams in their conference (~73%) and every two teams in a conference must share at least one common opponent.

Anyways enough with the model discussion. The code I used is found here. (I used the logit transformation). Anyways, I used these Bradley Terry models to get predicted probabilities of winning and used these to simulate the entire playoffs many times via Monte Carlo. For a look at some of the model probabilities, here are the wild card games with the probability of winning for the home team in ( ).

NFC: WildCard

             NYG @ GB (48.81%)                            DET @ SEA (51.79 %)

AFC: WildCard

               Oak @ Hou (46.2%)                                   Mia @ Pit (51.43%)

Given the parity in the NFL, it’s probably not surprising that these probabilities are all pretty close to 50%. There are extensions to the Bradley-Terry model that can incorperate extra variables, like who’s at home or winning as a function of certain opposing team statistics, which would move these probabilities further away. However, for simplicity I avoided these ((maybe next year depending on how these predictions go!)). So I used all these probabilities to simulate the entire playoffs 1,000,000 times keeping in mind that the Patriots and the Cowboys play the lowest advancing seed (3 potential opponents in round 2). I kept track of how many games each team won, who won the AFC/NFC and who won the Superbowl.

The Big Kicker


Nothing too surprising here. The Patriots, Cowboys,Chiefs and Falcons had the highest number of Super Bowl wins in the simulations but they also had the most regular season wins. They also have the luxury of getting a bye and do not risk playing an extra game. 65% of Superbowl champions have had byes and these simulations gave this a 55% chance of happening. I also should note that the Raiders are projected as the team to appear in the Superbowl the most out of the non-bye teams, which does not incorporate the fact that their quarterback Derek Carr has a broken fibula.

The Texans, sadly, had the worst chances at winning the big dance.

Anyways, I just wanted to apply this simple but cool model to see how it predicted the playoffs. I plan to do this for the NBA as long as the NBA has an excel spread sheet of wins (since the hardest part of this was putting the data together). I could also use additional variables like homefield advantage, yards/game etc. to move these probabilities away from .5. Those coefficients would be estimated as fixed effects in each probability function.

I’m hoping these sims are wrong and the Texans pull off a miracle.

If you enjoyed this post, take a look at some of my other Adventures in Statistics.

-Andrew G Chapple






Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s