The NFL season begins tonight, and there are predictions flying everywhere. I thought I’d take a basic analytical approach and produce a baseline projection. If your predictions can’t beat this (dumb) system, you aren’t very good at predictions!
What got me started down this trail was Bill Barnwell’s article on Grantland breaking down some good basic predictive NFL statistics. He discussed Pythagorean Wins, record in close games, the Plexiglass principle, and team turnover margin, and how those stats help in predictions.
So, I thought I’d throw together a quick projection system that includes those principles to churn out baseline NFL predictions.
Evaluating NFL Pythagorean Wins
First, I looked at whether there is any persistence to winning more games than expected from point differential. This is also tied into the close game fact–if you win a bunch of close games, you will win more games than your point differential would indicate likely.
I took all NFL team season since 1990 (thanks, Pro-Football-Reference!) and calculated each team’s Pythagorean Winning percentage for each season. I then compared the difference between actual win% and expected win% in year Y to year Y+1. The correlation was only 0.014, indicating that if you out perform your Pythagorean Win% one year, you aren’t more likely to do so the next year. Thus the “regression to the mean” effect of looking at Pythagorean Win % and close game win%.
So, in my projection, I will project point differential and calculate wins based off of that (and SoS).
Effect of Turnover Margin
Teams that have excellent turnover margins are somewhat more likely to have good turnover margins again; the correlation of turnover margin from 1 year to the next is 0.13. However, there is a strong “regression to the mean” component.
I ran a regression to predict turnover margin for Year Y from the previous 6 years. The weights came out as follows:
|NFL Average (=0.0)||5.76|
So most of the weight is on NFL average–there is a very strong regression to the mean.
To create my actual projections, I used a 3-step process:
- Adjust team point differential to remove turnover margin effect
- Predict point differential this year (using last 6 years plus regression to the mean)
- Convert point differential to wins based on strength of schedule and the Pythagorean equation
I ran a regression on the last 22 years of data (since 1990) to concurrently adjust for turnover margin and find the weights for predicting point differential.
The regression found that for every turnover-per-game-margin, the team’s point differential should be discounted by 2.4 points/game. So if a team (San Fransisco last year) had a point differential of +9.44, with at turnover margin per game of +1.75, their adjusted point differential for predictive purposes would be 9.4 – (2.4*1.75) = 5.24.
Okay, now I have adjusted point differentials for every historical season. On to the projections!
I ran the regression to predict point differential just like I did for turnover margins above. The resulting weights:
|NFL Average (=0.0)||0.83|
Notice: not nearly as strong of a regression to the NFL mean, nor a very strong reversion to the team’s historical past. Last year is a better predictor of this year than NFL average or the team’s total history before last year.
Okay, on to part 3: converting to wins.
I took the NFL schedule for next year, and based on the predicted team strengths I just calculated, I generated a strength of schedule for each team.
So, taking the team’s strength + SoS, and predicted team pace (I won’t bore you with those calcs) I generated Points For and Points Against and thus the team’s Pythagorean Win%, and Wins and Losses.
Note: I made 2 manual tweaks to account for 2 changes for this season: I added 5 points to the Broncos historical seasons and removed 5 points from the Colts for the seasons Peyton Manning played there, and I removed 5 points from the Saints for the coaching/suspension issues.
Here are the results:
|New England Patriots||10||6||0.648||436||338||98||6.1||-0.7||5.5||1|
|New York Jets||9||7||0.537||366||344||21||1.3||0.1||1.4||6|
|San Diego Chargers||9||7||0.587||403||349||54||3.4||-0.3||3.1||3|
|Kansas City Chiefs||6||10||0.399||307||365||-59||-3.7||0.0||-3.7|
|New York Giants||8||8||0.482||370||383||-13||-0.8||0.9||0.1|
|Green Bay Packers||10||6||0.649||432||334||98||6.1||-0.8||5.4||1|
|New Orleans Saints||10||6||0.598||421||356||64||4.0||-0.2||3.8||2|
|Tampa Bay Buccaneers||6||10||0.382||323||397||-74||-4.6||-0.2||-4.8|
|San Francisco 49ers||9||7||0.564||355||319||36||2.2||-0.5||1.8||4|
|St. Louis Rams||5||11||0.314||279||390||-111||-6.9||0.0||-6.9|
Obviously, by pundit standards, these projections seem conservative. They represent, however, a maximum likelihood estimate for each team–we should give each team about a 50% chance of doing better than or worse than their prediction here.
The standard deviation on the projection is 5.4 points, so there is a 68% chance that each team will be within 5.4 points of the predicted margin per game.
Put another way–there is about a 50% chance that a team over performs its expected point differential by 10 or more points. If that team is yours–you could be the San Fransisco 49ers of this season (+10.4 above last year) or the Lions or Saints (about +8.5 above expectation for each last year).