I'm trying to incorporate margin-weighting into a simple Elo rating system for a sports league. Classic Elo only encompasses Win/Draw/Loss data but I want to further reward teams for winning by a higher-than-expected margin. And I similarly want to be able to make predictions about future match margins from Elo rating differences.
I've been reading around a fair bit, and what I'm trying to do looks broadly similar to what Nate Silver has done with the NFL and NBA. In the case of the NFL, he has written a very plain-language explanation of how Autocorrelation when using margins can be an issue.
As I understand it, good teams often "run-out" and win by lots, over-inflating their rating. I'm not EXACTLY sure why this is autocorrelation, but whatever.
His solution to this is to use this formula:
Margin of Victory Multiplier = LN(ABS(PD)+1) * (2.2/((ELOW-ELOL)*.001+2.2))
Where PD is the point differential in the game, ELOW is the winning team’s Elo Rating before the game, and ELOL is the losing team’s Elo Rating before the game.
What I want to know is how he chose this formula and the parameters. And what should I do to help account for autocorrelation in my Elo ratings , bearing in mind it is a different sport with entirely different fixture lengths and variance?
In his NBA Elo rankings he uses an entirely different formula to account for margin of victory and autocorrelation. How does he decide this? Is he fitting it to some sort of raw data or just guessing?
The margin of victory multiplier (for the NBA) is calculated as follows:
Take a team’s margin of victory, add 3 points and then take the result to the power of 0.8.
Divide the result by the following formula: 7.5+.006*(elo_diff), where elo_diff represents the Elo rating difference between the teams, accounting for home-court advantage. Elo_diff should be negative in games won by the underdog.