Charlie Burrus's NCAA Football Computer Rankings
The algorithm:
- Assign an index of 1 to all teams.
- For each game that is played, calculate the modified point spread (MPS)= min[15, (point spread)*(winner's points)/(total points)]. So the minimum is close to zero, and the maximum is 15.
- For each game, calculated the modified point spread factor (MPSF) = .25 + MPS/60. So the So the minimum is close to .25, and the maximum is .5.
- For each date, calculate the datefactor = 0.999^(number of ellapsed days since the game was played). This gives recent games slightly more weight.
- If you win a game, you get {(1 + MPSF)*(1 + oppponent's index) - 1}*datefactor.
- If you lose a game, you get {(1 - MPSF)*(1 + oppponent's index) - 1}*datefactor.
- For each team, add up all the points from all the games you've played, and divide by the sum of the datefactors. Multiply by 100, and that's the team's score.
- Normalize all the scores linearly, so that the max is 1 and min is 0. That's the team's new index.
- Repeat this procedure (starting with step 2) indefinitely, until all the indices for the teams stabilize.