
Football Forecasting Algorithm
How My Football Forecasting Algorithm Works
Very well, considering that it only uses the previous final scores as input data. But why not judge for yourself ? The following graph shows the algorithm's performance in predicting wins on the 2009-2010 NFL season, weeks 1-17:

he model I am using for prediction relies on estimating two numerical characteristics per team, an Offensive Strength Factor (Fo(t)) and a Defensive Strength Factor (Fd(t)). The model assumes that the score (S) achieved by a team 'A' when playing against team 'B' is given by:
S(A) = M * (Fo(A)/Fd(B))
Where
M is a common mean score factor for all games played. To account for
differences between 'home' and 'visitor' team performance, separate
Mh and Mv can be used to estimate the home and visitor scores.
The
challenge is in finding sets of coefficents (Mv, Mh, Fo(i), and
Fd(i)) that fit the scoring data from previous games. One can use an
iterative method similar to that used in training a neural network,
illustrated by the following pseudocode:

The
above algorithm, if applied correctly, results in parameter values
that can then be used to forecast the outcomes of games yet to be
played, say in the coming week. As the characteristics of teams
constantly evolve, the algorithm needs to be re-run as new data
becomes available to provide fresh parameters for estimation.
In
some ways, I find it surprising that such a simple technique, working
with such little data, can provide forecasts nearly as accurate (~65%
vs 68-70%) as much more complex (?) methods working with much more
data.
Last Updated 1/1/12
![]()