NHL Team Strength: ELO Algorithm

XxJammingxX

Registered User
Mar 5, 2014
342
27
Hi Guys!

I had an idea to create an ELO scoring of team's standings (inspired by Nate Silver's work this season with the NFL!). Right now I scraped all data from Oct 08 until Dec 29 and am using that to calculate the ELO ratings as of today. I figured this would be a different way of looking at the standings by who the strongest teams are. I hope to have the methodology up in the next few days.

For those unfamiliar with the ELO ratings, it was popularized in chess to find who the stronger player is. (More info: http://en.wikipedia.org/wiki/Elo_rating_system)

Ive adapted it to look at two teams ELO score when they face off and calculate the odds of each team winning (slightly favoured to the home team). Then comparing the actual result of the game, and giving points to the winning team (which are taken from the losing team). The amount of points to take is decided by how much they were expected to win by. This results in a strong team beating a weak team adding few points. On the flip side, a weak team beating a stronger team will get a lot more points. Each team started out at 1500 points and as of today this is where they stand.

1. Chicago - 1998.068
2. Rangers - 1894.543
3. Montreal - 1890.369
4. Washington - 1872.456
5. Nashville - 1834.420
6. Pittsburgh - 1778.161
7. Islanders - 1756.758
8. Detroit - 1722.230
9. Los Angeles - 1717.609
10. Tampa Bay - 1704.784
11. San Jose - 1657.535
12. Winnipeg - 1627.176
13. St Louis - 1581.693
14. Anaheim Ducks - 1577.753
15. Dallas - 1554.485
16. Toronto - 1534.961
17. Vancouver - 1530.336
18. Florida - 1476.652
19. Minnesota - 1454.251
20. Boston - 1443.995
21. Ottawa - 1422.493
22. Calgary - 1386.950
23. Philadelphia - 1315.995
24. Colorado - 1282.695
25. Columbus - 1267.600
26. Carolina - 1110.785
27. New Jersey - 1048.539
28. Arizona - 1002.291
29. Buffalo - 862.305
30. Edmonton - 692.112


Methodology
Each team starts at 1500 points at the beginning of the Season (Oct 08). Before each game, an expected result of who wins is calculated. This is done by combining both the home and away ELO to get a percentage of home winning and percentage of away winning. Once that is completed, the actual result is fed in an ELO scores are adjusted accordingly. A goal differential is taken into account as the system will become less and less impressed with each additional goal scored (taking into account blowouts and close games). With that done, the ELO scores as adjusted for each team which will then be used for the next game.

Expected Result
Home Team: 1 / (10 ^ (-(ELOHOME-ELOAWAY)/1500)+1) + 0.03
Away Team: 1 - (Home's Expected Result)

As an example, at the beginning of the season, both teams start at 1500 ELO. That gives home 53% chance of winning, and away a 47% chance of winning.

Goal Multiplier
Goal difference = 1: 100%
Goal difference = 2: 150%
Goal Difference > 2: (0.75+(goals-3)/8) + 100%
Games ending in OT have a multiplier of 50%
Games ending in shootout have a multiplier of 10%

Ending ELO
Beginning ELO + (Multiplier * (Actual Result - Expected Result))

For the actual result, a 1 is a win and a 0 is a loss.


Hope to have this updating on a daily basis after each game concludes. This should be the first of many projects. :yo:
 
Last edited:

charlie1

It's all McDonald's
Dec 7, 2013
3,132
0
Nice work. I think Elo is a great idea, particularly early in the season.

In the same vein as Doctor No's comment: Can you lay out the exact equation you're using to calculate the number of points a team gets or loses from a game?
 

Doctor No

Registered User
Oct 26, 2005
9,250
3,971
hockeygoalies.org
Jeff does a similar approach, although it's a proprietary method so he does some of the bells and whistles that can be implemented when you're not publishing the method.

His also don't center at zero, which bothers me but isn't a huge deal (hypothetically, if you added a constant to everyone's ratings, then that value would just cancel out when developing a point spread). The main thing I prefer about having "average" equal "zero" is that I can then talk about things like "below-average schedules" or "above-average schedules" in threads like this one:

http://hfboards.mandatory.com/showthread.php?t=1501681

EDIT: to clarify, despite what you've titled the link above, Sagarin's method is an SRS variant (not an ELO variant).
 

XxJammingxX

Registered User
Mar 5, 2014
342
27
Updated with the methodology and formulas I used. Some numbers I picked arbitrarily (6% odds of home team winning). However, I'd like to hear you guy's thoughts on the process.

I'll take a look at the SRS project, thanks for that.
 

Doctor No

Registered User
Oct 26, 2005
9,250
3,971
hockeygoalies.org
Excellent - thanks! I may try to replicate your results with my data, depending on what else ends up on my plate.

One way to calibrate the constants would be to actually use the results, and pick constants that optimize the predictive nature of the algorithm. My first suggestion would be to use a goal multiplier of less than 100% for events determined in overtime or in the shootout.
 

Noldo

Registered User
May 28, 2007
1,668
253
Excellent - thanks! I may try to replicate your results with my data, depending on what else ends up on my plate.

One way to calibrate the constants would be to actually use the results, and pick constants that optimize the predictive nature of the algorithm. My first suggestion would be to use a goal multiplier of less than 100% for events determined in overtime or in the shootout.

Would it be possible to derive the base constants from the previous years' data?
 

XxJammingxX

Registered User
Mar 5, 2014
342
27
I think using previous years data to backtest the constants would be a good improvement. I haven't had much time since originally creating this to improve it, but will be working more on it this weekend. Right now I want to use Doctor No's suggestion of shootout and OT, and adjusting the multiplier with that.

I also want to have this run automatically everyday at 1-2am or so and just update the rankings with that days data.


Ratings are updated with data as of January 2nd. Shootouts change the multiplier to 10%, OT wins change the multiplier to 50%. Otherwise the methodology was kept the same.
 
Last edited:

tempofound

Registered User
Oct 18, 2013
358
202
Not a stat guy but a chess player. I have one question.

In chess white is generally perceived to have an advantage and will statistically win more games than black. However, the ELO-formulas commonly used don't account for this and instead rely on the fact that over a significant amount of time games played as white and games played as black tend to even out. I believe one reason for this being that while white has always had the advantage, the size of that advantage has varied historically (as opening theory has developed).

In hockey you could perhaps by analogy say that the home team is white and away team is black. And in hockey as in chess, over a large amount of time home and away games even out. So why have you chosen to adjust your formulas for home and away? Suppose next season home team advantage proves to be smaller than it was this season. Would you adjust your formulas? And wouldn't that make cross-season comparison more difficult?

Just curious about your reasoning.

Overall a very interesting project!
 

Ad

Upcoming events

Ad

Ad