Improving the ISOV

October 25, 2017

I created the ISOV as a pure-points derivative of Boyd Nation's (original) ISR without a great deal of (ok, very little) thought. Its only difference from the ISR is that it assigns a variable weight to each game instead of the ISR's fixed weight. It turns out that when I use it and its SOS to predict game scores the results are better than I would have expected (but only a little better than a weighted coin.) What it does do remarkably well is predict the "opening spreads" fairly accurately.

The idea was that instead of 25 ± 2.5 for a game's "worth" or "cost" (the ± being applied to account for home field advantage) I calculated the "Strength of Victory" as defined by the NFL:

SOVgame = winning scoregamelosing scoregame

winning scoregame + losing scoregame
to come up with a variable adjustment factor for each game:
ƒ(game) =SOVgame × (winning score + losing score)

to define the "game worth" that is added to the opponents' rating for wins and subtracted for losses at every iteration.

There is a serious problem with this approach that I recognized from the beginning but wasn't clever enough to fix. Every shutout counts the same weight whether it's 2-0 or 66-0, and that awful 3-2 game counts the same as a watchable 21-14 game. While reading Keener's paper on how advanced rating systems depend upon the Perron-Frobenius theorem (thanks again to Dr. Massey for bringing that to our attention) I thought of a simple fix.

The whole idea is to adjust the winner's and loser's rating for iteration n based upon their opponent's values for iteration n − 1 and how close to a tie the game result. The first quotient in the game-worth formula was meant to capture the notion of "relationship to a standard game" – how much better or worse than "average" the win was by. Clearly 66-0 is more different from a standard game than 3-0, but the NFL's definition does not distinguish between shutouts.

The insight from Keener's paper was the utility of the mediant. For two rational numbers p⁄q and r⁄s the mediant of the two is

p + r

q + s
and even though this looks like a grade-schooler's mistaken attempt to add fractions, it is a perfectly respectable way to find a value between p/q and r/s — the mediant is often profitably used in proofs about rational numbers.

With suitable (fixed for all games) choices for r and s (Keener chose 1 and 2 for one of his formulas) the "comparison to a standard game" can be reformulated in a way that neatly solves the shutout problem. Just replace winning scorelosing score (MoV) and winning score + losing score (Total) in the formula with those values plus the averages of those values over all games.

ƒ(game) =MoVgame + MoV×Total

Totalgame + Total2
This very neatly eliminates the need to introduce the ad hoc tweaks I had to make to keep SOVgame ÷ SOV within a reasonable range, and distinguishes shutouts by the margin of victory:
Values for shutouts

The range of adjustment factors ƒ for all games through 21 October is 3.1-19.2 based upon a standard game (36.59-17.76) with value 9.4 looks like this:

Values based on MOV and total points
For each MOV value ƒ is smaller for larger total score: the 3.07 represents 71-68 since those teams are more nearly the same than those who play a 3-0 game. We can summarize the values of ƒ by MOV expressed in number of scores:
value range vs MOV in #scores
The ♦ at ≈ (2.8, 9.4) represents the average MoV and Total Points.

For once instead of just implementing the change and giving the results a "smell test" I finished the above analysis before writing any code. Without knowing how the algorithm would perform with the new ƒ we note that it has very desirable properties compared to the original.

We make a minor tweak to account for a home field advantage (hfa.) In games not at neutral sites use:

ƒ(game) =MoVgame ± hfa + MoV×Total

Totalgame + Total2
with the ambiguous sign taken to be + for a game in which the visitor won and − for a home-team win.

When I plug that ƒ(game) into Boyd's iterative formula, I get results that pass the "smell test." Here's the top 20 (follow the SOV link and its ISOV link to see the full list.)

RankISOVNormTeamConfSOSRank    WSOS(W)    LSOS(L)
11118.682.277Penn StateB10105.7228287105.7200.00
55116.141.973Notre DameND107.0911116105.561116.32
88114.421.766Ohio StateB10104.0757576102.871111.24
1010114.211.741Virginia TechACC104.2852526102.271116.32
1212113.201.621Michigan StateB10106.9813136105.451116.14
1414112.921.587Oklahoma StateB12104.6143436103.061113.91
1515112.471.533North Carolina StateACC105.9027276105.581107.80
1818110.691.320Iowa StateB12105.0835355103.652108.63
1919110.691.319Washington StateP12102.8770707102.341106.58

I will not change the formula mid-year, but I will calculate the new version for the remainder of the season. Unless quantitative analysis shows the new version is not an improvement, I will likely make the change next off-season.

2 January 2018 update

Here is a comparison of the predictions made using the ISOV and the updated version. The new version is an improvement as far as score-predicting goes.
WeekGamesoldSU%SUnewSU%SU2      oldPP%PPnewPP%PP2

The updated version usually predicts the same winner as the original, and when it doesn't it usually turns out to pick the winner. When we look at the percentage of games for which the actual margin of victory is greater than or equal to the predicted value, the updated algorithm performs more than 20 percent better. Some of that is just because the new version predicts smaller margins to start with, but they are still more nearly "right" than the original.

Follow the predictions of the original and the revised algoirtithms.

© Copyright 2017, Paul Kislanko
Football Home