Evaluating Hockey Analytics (and bonus luck numbers through November 15, 2015) November 16, 2015
Posted by tomflesher in Economics, Hockey, Sports.Tags: Corsi, Fenwick, Hockey analytics, NHL, Pythagorean expectation, Pythagorean luck, Sabres
trackback
The Buffalo Sabres have been having a weird season. They’ve been outshot and won, they’ve outshot their opponents and lost, and (aside
from starting goalie Chad Johnson) their ice time leader, defenseman Rasmus Ristolainen, is bringing up the rear in relative Corsi and Fenwick stats. Ristolainen has a nasty -9.5 Corsi Rel, while fellow defenders Jake McCabe, Mark Pysyk, and Mike Weber have 8.5, 9.1, and 13.5, respectively. Ristolainen is averaging over 24 minutes a game, with the other three down by six to eight minutes each. What’s more, Ristolainen appears to be pulling his weight – he’s made 45 shots, second only to center Jack Eichel, and has 4 goals with an 8.9 shooting percentage. Ristolainen has 11 points (second only to Ryan O’Reilly with 14) but is tied with Tyler Ennis for the team’s worst +/- at -6. See? Weird year so far.
A lot of that is small sample size, of course. The Sabres are only 17 games into the 82-game season. They are, however, looking awfully lucky so far. Just how lucky? Let’s find out using the same Pythagorean metric that shows up in baseball.
Since Corsi and Fenwick both measure attempts to shoot, they’re noisier than goals. I was curious how much noisier, so I fired up R using the 2014 data and decided to update my post from earlier this year about the optimal Pythagorean exponent for the NHL. In it, I set up three minimization problems, all of them estimating winning percentage (and counting overtime losses as losses – the exponent changes only slightly if you estimate points-percentage instead of wins). Those three problems each minimized the sum of squares, using the Pythagorean formulas. The first used the traditional method of estimating goals and goals against; the second used Corsi For and Corsi Against; the third used Fenwick For and Fenwick Against.
The Goals For/Goals Against form () returned an optimal x value of a bit over 2.11, with a residual sum of squares of .0289. That means that if you square each team’s win-loss percentage and compare it to
, then square all of the differences (to keep them positive) and add them up, you get a total of .0289. The number itself doesn’t mean anything, but it’s a useful way to compare one model to another.
The Corsi For/Corsi Against form returns an optimal x of 1.445, but the residual sum of squares ballooned to .24. That means on average the squared error is almost ten times as great – you get a pretty good predictor, but with much more “noise.”
Right in the middle, the Fenwick form yields an optimal x of 1.877, with a residual squared error of .203. It’s a better predictor of wins and losses than the Corsi version, but it’s still not as good a predictor of wins as the simple Goals For/Goals Against form.
Above, I’ve graphed each team’s winning percentage against the Pythagorean (Goals For/Goals Against form), as well as all three trendlines: note that the black Goals line and the red Fenwick line are extremely close, while the blue Corsi line is a bit higher up. Two conclusions can be drawn:
- The Fenwick line is a better predictor than the Corsi line, but the Corsi line appears to bias expected percentage upward. That is, it overestimates the imact of each shot more than goals and Fenwick do.
- Since the Fenwick line is a better predictor, that indicates that Corsi’s inclusion of blocked shots probably does just add noise. Blocked shots are, at least according to this model, of limited predictive value.
Through November 15, Corsi For % had a correlation of .11 with points and .125 with winning percentage; Fenwick For % had correlations of .17 and .19, respectively. Blocked shots had negative correlations in both cases.
Pythagorean luck is defined as the number of wins above expectation. Behind the jump are the numbers, through November 15, demonstrating which teams are lucky and which aren’t.
Team | GP | W | L | OL | PythWins | PythLuck |
Dallas Stars | 18 | 14 | 4 | 0 | 12.0 | 2.0 |
Pittsburgh Penguins | 17 | 10 | 7 | 0 | 8.3 | 1.7 |
St. Louis Blues | 17 | 11 | 5 | 1 | 9.7 | 1.3 |
Minnesota Wild | 16 | 10 | 3 | 3 | 8.9 | 1.1 |
Philadelphia Flyers | 17 | 6 | 8 | 3 | 5.0 | 1.0 |
Winnipeg Jets | 18 | 8 | 8 | 2 | 7.1 | 0.9 |
Los Angeles Kings | 17 | 11 | 6 | 0 | 10.1 | 0.9 |
Calgary Flames | 19 | 6 | 12 | 1 | 5.1 | 0.9 |
Buffalo Sabres | 17 | 8 | 8 | 1 | 7.3 | 0.7 |
Arizona Coyotes | 17 | 9 | 7 | 1 | 8.3 | 0.7 |
New Jersey Devils | 17 | 10 | 6 | 1 | 9.4 | 0.6 |
Detroit Red Wings | 17 | 8 | 8 | 1 | 7.4 | 0.6 |
Carolina Hurricanes | 17 | 6 | 9 | 2 | 5.4 | 0.6 |
Washington Capitals | 16 | 11 | 4 | 1 | 10.5 | 0.5 |
Anaheim Ducks | 17 | 5 | 8 | 4 | 4.8 | 0.2 |
New York Rangers | 18 | 14 | 2 | 2 | 13.9 | 0.1 |
San Jose Sharks | 17 | 9 | 8 | 0 | 8.9 | 0.1 |
Chicago Blackhawks | 18 | 10 | 7 | 1 | 10.0 | 0.0 |
Columbus Blue Jackets | 18 | 6 | 12 | 0 | 6.1 | -0.1 |
Ottawa Senators | 17 | 8 | 5 | 4 | 8.2 | -0.2 |
Montreal Canadiens | 18 | 13 | 3 | 2 | 13.2 | -0.2 |
Nashville Predators | 16 | 10 | 3 | 3 | 10.3 | -0.3 |
Boston Bruins | 16 | 8 | 7 | 1 | 8.5 | -0.5 |
Edmonton Oilers | 18 | 6 | 12 | 0 | 7.0 | -1.0 |
Tampa Bay Lightning | 19 | 8 | 8 | 3 | 9.1 | -1.1 |
New York Islanders | 18 | 9 | 6 | 3 | 10.5 | -1.5 |
Toronto Maple Leafs | 18 | 5 | 9 | 4 | 6.5 | -1.5 |
Florida Panthers | 17 | 7 | 7 | 3 | 9.1 | -2.1 |
Colorado Avalanche | 17 | 7 | 9 | 1 | 9.3 | -2.3 |
Vancouver Canucks | 18 | 7 | 6 | 5 | 10.2 | -3.2 |
Comments»
No comments yet — be the first.