Sunday, October 27, 2013

NFL Playoff Seed Probabilities

Because it's never too soon to start talking playoffs.

The latest version of my NFL ranking table features some odd looking multi-colored bar graphs, taking the place of the monochrome Projected Wins bar graph. These new graphs represents each team's projected playoff seed probabilities, from #16 on the left to #1 on the right. The red bars are for seeds 16-7 (out of the playoffs) and the blue bars are for seeds 6-1 (wildcard and division winners). Mouseover the bar graph for the actual probabilities.

The probabilities are based on simulating the remainder of the season 10,000 times (see the Projected Wins post for more details). I then apply the NFL playoff seeding rules and various tiebreakers. As a reminder, the top 4 seeds belong to the four division winners, with the remaining two playoff seeds going to the two non-division winners with the best record. For a fully armed and operational NFL simulation tool, check out nfl-forecast.com.

This is virtually identical to a feature I added to my NBA rankings in February of this year. After the regular season was finished, I also set the probabilities in motion, something I plan on on doing for the NFL as well, once week 17 is complete. Some observations:


The AFC and NFC West

Denver:
Kansas City:
The Broncos' and Chiefs' seed probabilities have a hillbilly-grin look about them. What these graphs are telling us is that the #1 and #5 seeds in the AFC are most likely going to come out of the AFC West. The Broncos are the clear favorite over the Chiefs, despite being a game behind in the standings (their GPF is higher by a good 7 points, which counts for a lot with half the season to go).

We have a nearly identical situation in the NFC West with the Seahawks and 49ers (with the Packers splitting the vote somewhat):

Seattle:
San Francisco:
Green Bay:


Outlook is Cloudy

With more than half the season to be played, there is still a significant spread in the seed distributions, save for one team:

Jacksonville:
The Jaguars can rest easy. In the words of Mose Alison:
You know I used to be troubled, but I finally saw the light
Now I don't worry 'bout a thing, 'cause I know nothing's gonna be alright 

2 comments:

  1. This is a really nice feature, to along with lots of other great stuff on your website.

    If I have understood your methodology for the simulations correctly, then in my view it will give too much confidence in the outcome for very strong or weak teams (this also applies to the old Projected Wins bar graph). Here's why:

    For games without a point spread, you are constructing the point spread yourself from the current GPF. In reality, the GPF evolves from game to game, so it would be better to have a future GPF, but of course changes in GPF are unpredictable. It's reasonable to assume that the current GPF for a given team is the mean of the bell curve of possible future GPFs for that team for any given week in the same season, so I can understand why you've taken this approach.

    However, there is one aspect of the evolution of future GPF that is partly predictable: the GPF of a team that wins a game is more likely to rise than the GPF of a team that loses a game. You could probably test this assertion by constructing bell curves of week-to-week changes in GPF following wins or losses. The best possible simulation of future games would randomly sample the GPF-change bell-curve for a win or a loss (dependent on the simulated game result) each week, and update the GPF for the following game accordingly.

    Why does any of this matter? I think it matters because it will generate a positive correlation between the results of future games for each team (i.e. a team that wins next week is slightly more likely to win the week after as well). This is not because of any spurious idea about "momentum" - I don't think the first win is in any way causing the second win - but because imperfect knowledge of the team will be updated by the win. Let's take the Jaguars as an extreme example:

    Their current GPF is -11.3, meaning that they are currently big underdogs for every game. As long as they keep losing, this GPF will probably keep slowly declining (or possibly hold steady or even improve slightly if they are covering the spreads). An unexpected win, however, will probably (not definitely) lead to a significant improvement in their GPF. In that case, further wins are more likely. The obvious effect of this is to broaden the bell curve of projected wins, but in Jacksonville's case the broadening hardly matters at the low end of the distribution: getting 1 win as opposed to 0 wins won't improve their chances of avoiding being the "16th seed". It does matter at the high end, though. For that reason, I would bite the hand off anyone offering me odds of 33/1 (the 3% probability you project) that Jacksonville will finish 15th or better in the AFC.

    I should say that projections for the season provided by other sites, such as Football Outsiders, seem to have the same issue. The difference is that for the projections offered by those other sites, I think there is little point in sorting out the issue because of bigger problems with their approach. Your method is so well constructed that it would seem to be worth improving in this way.

    ReplyDelete
  2. kicourse - That's an excellent point with regards to static GPF. I had toyed with trying to let the GPF evolve as a function of the simulated outcomes. The problem I run into is that it would significantly increase the runtime for the simulation. Right now, I can simulate all future games at once. Dynamic GPF would require simulating each week, recalculating GPF, and then moving on to the next week. With 10,000 simulation runs, that might be a bit much for my overworked Macbook Air.

    My Methodology page touches on a similar topic. I found that for the NFL, the market treats each game with 15% credibility. Meaning that if the actual margin deviated from the point spread by 10 points, the market corrects by 1.5 points in the direction of the miss.

    ReplyDelete