NFL simulator

Model Parameters

All probabilities must be between 0 and 1 (inclusive).

This tool was written by Mark Peterson, an Assistant Professor at Viterbo University in La Crosse, Wisconsin. It is built using Shiny for R (shiny.rstudio.com); if you would like to see the code, please contact me. If you use any of the outputs, ideas, etc, from this tool, please include a reference to this site and me by name.

Sometimes it is (relatively) easy to get an idea about what things might happen using just simple mathematical models. However, in many cases, there are too many moving pieces to use simple models and distributions. In those cases, we can turn to simulations, a way of repeatedly 'running' trials under particular conditions. In this example, we use the NFL as our system of interest.

Let's start by simply modeling the number wins a team (the Packers) gets in a season, and what that means for it's playoff prospects. If we treat each game as a simple success-failure condition (a Bernoullit trial), we can use the binomial model to predict how likely a given number of wins in a season is.

To see this in action, go to the panel to the left, set the probability that the Packers will win any given game. Hit submit and see the distribution of wins in a 16 game season (in the 'Simulation Output' tab). This will show both the result of a simulation and the predicted outcomes using a simple mathematical model (the binomial distribution).

However, if we want to know how likely it is that the Packers will win the NFC North, we need to also set a threshold for that. Historically, it seems that most teams that win 11 games win their divisions. So, start there, but feel free to move it around to see it's effect. (again in the 'Simulation Output' tab.)

However, the Green Bay Packers are not the only team in the NFC North. The performance of the Minnesota Vikings, Detroit Lions, and Chicago Bears will also affect the division race. Importantly, because the teams each play each other team twice, their records are inextricably linked with one another. For example, it would be impossible for both the Vikings and Packers to win all 16 games in a given season.

Therefore, we need to consider not just each team's overall quality, but also their relative strengths and the fact that they play each other. There is no simple way to model this using mathematical distributions; we must use a simulation. Not only is it easier to see the outcomes, it is the only possible way. Otherwise, how could we account for seasons like the NFC South had in 2014, where a 7 win team made the playoffs?

To play with this more complicated scenario, select 'Complex' from the 'Which Model' option to the left and hit 'Submit' to get the complex options. Then set the probabilities of wins between each pair of teams (between 0 and 1; note that you only set it once because the probability that the Bears beat the Packers is just one minus the probability that the Packers beat the Bears). Once you have a set of probabilities that you like, hit 'Submit' and review the results.

As time allows, I intend to extend this tool to allow more features. For one, it would be great to look at more than one focal team and/or division (I'm a Vikings fan, so using the Packers is killing me). In addition, I am going to look for easier ways to set relative strengths and incorporate things like strength of schedule (similar to what ESPN does with it's power index). If you have any other suggestions, please contact me.