Just above these words, it says “posted by Chase.” And it was literally posted by Chase, but the words below the line belong to Bryan Frye, a longtime reader and commenter who has agreed to write this guest post for us. And I thank him for it. Bryan lives in Yorktown, Virginia, and operates his own great site at http://www.thegridfe.com/, where he focuses on NFL stats and history.
With six weeks behind us, we should be at the point where we can figure out who teams are. [1]For a counter view, see this post by Chase. However, this season seems to be a parity lover’s dream. Although many teams near the poles are who we thought they were, others (such as New Orleans and Dallas and perhaps San Diego) are far from their preseason projections. The middle ranks are a jumble of average and indiscernible teams, and no team was even able to make it to 4-0. [2]Think that’s crazy? In 1961, the Cowboys, Lions, and Eagles were the last undefeated teams in the NFL, at 2-0. With half of the NFL’s teams lingering around 1-2 losses, how can we tell the petty tyrants from those with legitimate claims to the throne? I recently began working on a model to do just that.
The foundation of the model is each team’s Pythagenpat record. [3]I prefer to use Pythagenpat, but this can be done using any number of stats that result in a win percentage (e.g., Pythagorean, Pythagenport, actual win percentage). If you don’t want to use … Continue reading For the sake of brevity, I’ll assume you are familiar with the concept. If not, I highly recommend reading Chase’s post on the subject. As a frame of reference, the table below shows the Pythagenpat winning percentage through week 6. [4]Note that I use .248 as the exponent to find each N. This is a rounded version of Neil’s .2477 to which Chase alluded.
Tm | PF | PA | Ppat% |
---|---|---|---|
SD | 164 | 91 | 0.816 |
BAL | 164 | 97 | 0.792 |
DEN | 147 | 104 | 0.714 |
IND | 189 | 136 | 0.708 |
PHI | 183 | 132 | 0.705 |
DET | 116 | 82 | 0.695 |
DAL | 165 | 126 | 0.67 |
NE | 160 | 129 | 0.637 |
GNB | 161 | 130 | 0.636 |
CIN | 134 | 113 | 0.61 |
SEA | 133 | 113 | 0.605 |
KC | 119 | 101 | 0.603 |
CLE | 134 | 115 | 0.599 |
SF | 141 | 123 | 0.586 |
HOU | 132 | 120 | 0.56 |
ARI | 116 | 106 | 0.557 |
CHI | 143 | 144 | 0.495 |
MIA | 120 | 124 | 0.479 |
ATL | 164 | 170 | 0.476 |
NYG | 133 | 138 | 0.476 |
BUF | 118 | 126 | 0.459 |
NOR | 132 | 141 | 0.456 |
CAR | 141 | 157 | 0.43 |
PIT | 124 | 139 | 0.428 |
WAS | 132 | 166 | 0.354 |
MIN | 104 | 143 | 0.31 |
TEN | 104 | 153 | 0.273 |
STL | 101 | 150 | 0.26 |
NYJ | 96 | 158 | 0.221 |
OAK | 79 | 134 | 0.208 |
TB | 120 | 204 | 0.194 |
JAX | 81 | 185 | 0.108 |
Now that we have the Pythagenpat expectations in place, we can go ahead and adjust for strength of schedule. There are many ways to do this (e.g., standard SRS, SRS-adjusted, DVOA-adjusted, Pythagorean expectations, Elo ratings), but today we’re going to use a logistic function to make the adjustment. When covering concepts like this, I prefer to use examples in the explanations to foster greater understanding. In this case, I will use the Baltimore Ravens.
The first step is to find the average opponent Pythagenpat record.
The Ravens have played the Bengals (.610), Steelers (.428), Browns (.599), Panthers (.430), Colts (.708), and Buccaneers (.194), for an average of .495.
The second step is to convert Pythagenpat percentages to wins ratios (instead of wins/games, it’s wins/losses). For simplicity’s sake, I’m using ratios based on a full season. Baltimore’s Ppat% is .792, and their opponents have averaged .495, so the wins ratios are:
WR_Bal = Wins (.792 * 16) over Losses [(1 – .792) * 16] = 12.68/3.32 = 3.813.
WR_Opp = Wins (.495 * 16) over Losses [(1 – .495) * 16] = 7.92/8.08 = .979.
For step three, we’ll find the natural logarithm of the product of the two win ratios; we’ll call this number x.
x = ln(3.813 * .979) = 1.318
Now that we have x, we can run a logistic function to find Adjusted Pythagenpat Percentage (APP).
Logistic Function: 1/(1 + e^-x)
APP = 1/(1 + e^-1.318) = .789
Thus, with a Pythagenpat percentage of .792 against a schedule strength of .495, Baltimore is really a .789 team. Still good, but not quite as good. Do that for every team, and you get the results in the table below. Read it thus: The Baltimore Ravens have a Pythagenpat percentage of .792, and their opponents average a .495. This gives the Ravens an Adjusted Pythagenpat Percentage of .789, meaning they lose .003 when strength of schedule is taken into account.
Tm | Ppat% | AvgOpp | APP | Change |
---|---|---|---|---|
BAL | 0.792 | 0.495 | 0.789 | -0.003 |
DEN | 0.714 | 0.539 | 0.745 | 0.031 |
IND | 0.708 | 0.525 | 0.728 | 0.02 |
SF | 0.586 | 0.638 | 0.714 | 0.128 |
SD | 0.816 | 0.36 | 0.714 | -0.102 |
SEA | 0.605 | 0.549 | 0.651 | 0.046 |
ARI | 0.557 | 0.589 | 0.644 | 0.087 |
KC | 0.603 | 0.538 | 0.639 | 0.036 |
CIN | 0.61 | 0.522 | 0.631 | 0.021 |
DAL | 0.67 | 0.457 | 0.63 | -0.04 |
PHI | 0.705 | 0.415 | 0.63 | -0.075 |
DET | 0.695 | 0.422 | 0.625 | -0.07 |
GNB | 0.636 | 0.468 | 0.606 | -0.03 |
NE | 0.637 | 0.445 | 0.584 | -0.053 |
CLE | 0.599 | 0.475 | 0.575 | -0.024 |
BUF | 0.459 | 0.614 | 0.574 | 0.115 |
HOU | 0.56 | 0.479 | 0.539 | -0.021 |
NYG | 0.476 | 0.558 | 0.534 | 0.058 |
MIA | 0.479 | 0.509 | 0.487 | 0.008 |
CAR | 0.43 | 0.536 | 0.465 | 0.035 |
CHI | 0.495 | 0.468 | 0.463 | -0.032 |
NOR | 0.456 | 0.45 | 0.406 | -0.05 |
ATL | 0.476 | 0.424 | 0.4 | -0.076 |
PIT | 0.428 | 0.454 | 0.383 | -0.045 |
WAS | 0.354 | 0.502 | 0.355 | 0.001 |
MIN | 0.31 | 0.527 | 0.333 | 0.023 |
TEN | 0.273 | 0.55 | 0.314 | 0.041 |
NYJ | 0.221 | 0.594 | 0.293 | 0.072 |
STL | 0.26 | 0.493 | 0.255 | -0.005 |
OAK | 0.208 | 0.543 | 0.237 | 0.029 |
TB | 0.194 | 0.474 | 0.178 | -0.016 |
JAX | 0.108 | 0.547 | 0.127 | 0.019 |
Some thoughts on the results:
- The Chargers have the highest standard Pythagenpat number, but they also have played the easiest schedule in the NFL by far. Their decrease of .102 is equivalent to 1.63 games in a season, and it drops them to fifth in APP. Games against the Jets, Raiders, and Jaguars will do that to you. Note also that this is not an iterative process; PFR is less bothered by the Chargers’ schedule, perhaps because several of San Diego’s opponents have already played both Denver and San Diego. Football Outsiders notes that the Chargers have faced the 2nd easiest schedule to date, but will play the 2nd hardest schedule (including both Denver games) over the final eleven weeks of the season.
- The Falcons and Steelers both have Pythagenpat records below .500, despite facing opponents who are also below .500. It’s still pretty early in the season, but this doesn’t look good for either team.
- The Broncos, Colts, and Seahawks all have very good unadjusted numbers. When you factor in their difficult schedules, they look even better.
- If San Francisco’s average opponent were a team, it would rank between Dallas and New England in regular Pythagenpat strength. The Niners’ solid numbers against a brutal schedule actually moves them past the rival Seahawks. Their .128 change indicates they are roughly two games better than their unadjusted numbers would have us believe.
- Because Chase is a Jets fan, I figure I better talk about them too. Their Pythagenpat numbers are the fourth worst in the league, but they have come against the league’s third toughest schedule. They’re still not very good, but they’re not the fourth worst team in the NFL either. [5]They’re just the 5th worst.
- I’ll say it so you don’t have to: there is some chicken and egg going on here. For example, Jacksonville’s schedule looks brutal because they have been blown out so many times, inflating their opponent’s numbers. The Eagles, Colts, and Chargers are good teams; but the Jaguars helped them look even better.
Like any model, this will get more accurate as the season progresses. I am especially excited to see how it morphs as the year advances. What stands out to you?
References
↑1 | For a counter view, see this post by Chase. |
---|---|
↑2 | Think that’s crazy? In 1961, the Cowboys, Lions, and Eagles were the last undefeated teams in the NFL, at 2-0. |
↑3 | I prefer to use Pythagenpat, but this can be done using any number of stats that result in a win percentage (e.g., Pythagorean, Pythagenport, actual win percentage). If you don’t want to use Pythagenpat, then don’t. I’m not going to tell you how to live your life. |
↑4 | Note that I use .248 as the exponent to find each N. This is a rounded version of Neil’s .2477 to which Chase alluded. |
↑5 | They’re just the 5th worst. |