Numbered Days: October 26th

Numbered Days is a weekly feature looking back at the statistical week that was in the NHL. Raw data was extracted from War On Ice, Natural Stat Trick and Hockey Reference.

Sunday, October 19: The LA Kings post a sub-40% 5v5 Corsi for the 2nd straight game. This is the first time since their 2012 playoff series versus Vancouver that the Kings have been held below the 40% Corsi mark at event strength in consecutive games.

Monday, October 20: The Oilers use only 4 different players in the faceoff circle against the Lightning on route to a 3-2 win. Each of those centres finished below 50% on the night, marking only the 31st time since 2007-2008 that a team has used only 4 centres none of whom finished with a winning record on the dot (yes, this was a tough night to find something interesting to report on).

Tuesday, October 21: The Phoenix, err, Arizona Coyotes record 24 of their 59 shot attempts over two spells of just about 3 minutes each (from 16:34 to 18:59 of the 2nd and 4:40-7:42 of the 3rd). That’s just 40% of their shot attempts coming in only 8% of the game. Amazingly, Arizona manages to finish at exactly 50% in all-strengths Corsi despite recording only 35 shot attempts over 59:33 seconds of play.

Wednesday, October 22: Claude Giroux leads the Flyers in total time-on-ice as the Flyers defeat their in-state rival Penguins. Since 2007-2008, Giroux has been the most played skater on the Flyers 43 times. Only 3 forwards have been the most-used skater more often over that time period, with Ilya Kovalchuk accomplishing it an amazing 139(!!!) times in 505 games.

Thursday, October 23: Darcy Kuemper records his 3rd shutout of the season in the Wild’s 2-0 win over the Coyotes. Over the past 2 seasons Kuemper has recorded 5 shutouts in 30 games played, no goalie has recorded a better shutout/GP rate over that period.

Friday, October 24: Ondrej Pavelec is pulled after allowing 4 goals to the Tampa Bay Lightning in 40 minutes. Since 2009-2010, only 1 goalie has more games with between 20 and 50 minutes played (i.e. he got pulled). That goalie: Steve Mason of the Philadelphia Flyers.

Saturday, October 25: Jason Zucker scores on both of his shots on goal while playing only 10 minutes in Minnesota’s 7-2 thumping of the Lightning. In the Behind The Net era, only 17 players have scored at least 2 goals and posted a 100% shooting percentage while playing 10 minutes or less. His Wild teammate Zach Parise is the only player to score a hat-trick on only 3 shots in that time span, needing only 9:36 to put 3 goals past Michael Neuvirth in March of 2012.
Tagged with: , , ,
Posted in Numbered Days

Numbered Days: October 19th

Numbered Days is a new (and hopefully recurring) weekly feature looking back at the statistical week that was in the NHL. Raw data was extracted from War On Ice, Natural Stat Trick and Hockey Reference.

Sunday, October 12: Jets goalies post an 0.840 even-strength save percentage in a 4-1 loss to the Kings. This is the 137th time in 378 games since Ondrej Pavelec became a fixture in the Thrasher/Jets’ net that the team has posted a sub-0.900 5v5 Sv%.

Monday, October 13: Steven Stamkos records 12 shots and 14 shot attempts versus the Canadians. Since the 04-05 lockout, only 41 other players have recorded at least 12 shots in a game, and only 4 players have done it in less time than Stamkos’ 17:16.

Tuesday, October 14: The Leafs attempt 20 more shots than the Avs, and win the game. This was only the 7th time in 159 games since Randy Carlyle was hired that the Leafs have out-Corsi’d their opponents and won.

Wednesday, October 15: Chicago dominates the Flames, out-Corsi-ing them 96-33 in a 2-1 OT Loss. Chicago managed to hit the net with 50 of their shots, while only allowing 18 to get through to netminder Corey Crawford. In the entire history of the NHL only 14 other teams have managed to lose while putting 50+ shots on net and giving up less than 20. I think it might seriously be time to call the cops, Joel Quenneville.

Thursday, Oct 16: 20-year old Damon Severson scores 2 goals in a 6-2 loss to the Caps, becoming the 14th youngest defenseman in NHL history to accomplish that feat. Perhaps more impressively, he becomes only the 7th defenseman aged 20 or younger to record 8 shots in a game.

Friday, October 17: Nick Bjugstad puts up a perfect (Corsi) game after the Sabres fail to put even a single attempt towards the Panthers’ net while he was on the ice. Bjugstad’s overall Corsi of +23 is the most shot attempts for a player has ever recorded without allowing a single shot attempt against in the BTN era.

via Mike O’Brand

Saturday, October 18: The Sabres suffer their second consecutive shutout loss, losing the even-strength Corsi battle 52-37. Over their 4 games this week, the Sabres managed to pull out only a single point after facing 228 even strength shot attempts against and only putting 128 towards their opponents’ nets.

Tagged with: , , , ,
Posted in Numbered Days

2014-2015 Season Predictions

Hockey is almost back! Hurray! With the pointlessness of the preseason finally behind us, and with the start of the real games less than 24 hours away, I thought I’d throw my hat into the ring and offer my best attempt at crystal ball gazing. I wanted to come up with a methodology that was relatively straightforward for 2 completely selfish reasons: 1) I ran out of time to do a more complicated methodology that I was planning; and 2) I’ll hopefully be able to blame the simplicity of the model when everything goes wrong. The basic approach that I took (which is certainly full of holes that I’ll elaborate on below) was:

  • I downloaded each team’s current roster from Wikipedia (possible source of error #1)
  • For each player, I estimated their even-strength time on ice by taking their historical TOI Pct over the past 3 years and adjusting that for their current team. In other words:

    Est TOI = Lg Avg Tm TOI * (Ind. Avg TOI Percent)/(Total 3-Year Avg TOI Percent for Current Team)

    For players without a TOI prediction, I used the average forward or defenceman rate in the calculation above (possible source of error #2)

  • I then classified each team’s goalie as either a starter, 1A, 1B or backup. Based on that classification, I assigned each goalie an expected games played (possible source of error #3), and used the projections from Hockey Graph’s Marcels system to estimate a team level Save Percentage for the year.
  • Lastly, I took each player’s weighted average xGD20 (possible source of error #4) over the past 3 years (using a 5-4-3 and TOI based weighting), adjusted it for the team-level Save Percentage I calculated above, and used it to calculate an expected goal differential. For players without a prediction (rookies, for example), I just assumed they’d be league average players over the coming year. I then ranked the teams by expected goal differential, and presented the (sometimes somewhat unbelievable) results below.

As I said, there’s a lot of areas where this prediction could go wrong:

  • First, the rosters I used are likely incorrect, and if not, they almost certainly will be within the week.
  • Second, my goalie playing time projections are going to be off, and possibly significantly so. And while the Marcels system provides us with a good estimate of where we expect a goalie to be, single season save percentages are incredibly variable (and hence, incredibly difficult to predict).
  • Third, while xGD20 is a metric that tends to persist fairly strongly season-over-season, it is based on relative statistics rather than absolutes. This is an issue as putting together a group of good-player-from-bad-teams won’t necessarily yield a good team, and vice-versa.
  • Fourth, none of this takes into account special teams or shootout ability. A project for next year I suppose.
  • And lastly, of course, predictions for a whole season of hockey are really, really hard to do, so cut me some slack with the output. What’s presented below are the results of the model I described above, with no other tweaks or inputs from me whatsoever. I hope that over the course of the year I’ll be able to improve upon my methodology to the point where I can actually make predictions on the number of points a team will earn, but at this point you’ll have to live with my duct-taped together solution.

So without any further delay, here goes: Read more ›

Tagged with: , ,
Posted in Predictions

Is Jonathan Quick Overrated? Shot counting bias and save percentages

Travis Yost, TSNs newest hockey analytics writer, recently posted a piece outlining his most overrated and underrated players from a fancy stats point of view (related note, Travis’ piece on Nathan Mackinnon is a must read, provided they actually fix the link on the new site). His lists contained a lot of names that will be familiar to those who keep up to date with the analytics world: Benoit Pouliot, fancy stat darling of the 2014 free agent class, and Marc-Edouard Vlasic both make appearances in his group deserving of more respect, while Andrew Macdonald and eternal stats whipping boy Jack Johnson are pointed out as having more eye test value than actual value on the ice.

One player who Travis called out as being overrated, Kings goaltender Jonathan Quick, caught my attention in particular though. While Travis isn’t the only analyst who has accused Quick of getting too much media praise (and his critique about Quick’s 5v5 save percentage is certainly a valid point), I’ve always felt that Quick doesn’t tend to get a fair shake from the stats community given that his shots against numbers have been so far from the norm in recent years. As I’ve written about in the past, save percentage tends to increase as shots against go up, and Quick is a goalie who has faced an unusually low number of shots over the past few years. If we look at the 38 goalies who have played at least 3000 total minutes over the past 3 years, only 2 (Brian Elliott and Martin Brodeur) have faced fewer even-strength shots on a per 20 minute basis than Quick. Part of this is certainly due to the fact that he’s played behind LA’s puck possession machine for the past few seasons, but when we’re presented with data like this it does beg the question of whether his shots against data is accurate (or more precisely, whether there’s any bias in the data recorded by the LA scorer at home).

Read more ›

Tagged with: , ,
Posted in Goaltending

Player Comparison Tool/Salary Generator

Every NHL contract negotiation will always feature at least 2 common events: 1) reporters listing off subjectively-determined comparable players to peg a player to a given salary (“He’s going to be looking for Andrew MacDonald money”); and 2) fans picking-and-choosing stats to poke holes in the analysis performed by the media and come up with their own valuation. While the player evaluation tools available to the hockey community have grown over the past few years, the use of these tools to value players has always been somewhat lacking-should we look at a player’s Corsi-Rel, or his raw CF%? How do we include contextual factors like zone starts in our analysis? And what if there’s something that our stats don’t measure, that really should be included in a proper valuation? On the other hand, while finding comparable players is an admirable approach, the comparisons that are often used include such factors as “playing the tough minutes” or “bringing heart into the dressing room” or “he’s not Russian”. While these make for nice storylines (except the last one), they don’t always translate into good decisions (as the Flyers will likely find out with the aforementioned Mr. MacDonald).

As a fancy stats enthusiast and someone generally interested in tinkering in Excel, I wanted to look at whether we could blend the approaches to come up with a way to turn advanced statistics into comparable players. While I used a nearest neighbour analysis to find comparable players in my free agent preview this year,  I found that it was tough to translate the results of a single variable (in this case, xGD20) into a salary, particularly considering that important factors such as usage weren’t included in the analysis. I wanted to put something together that was flexible enough that it could be modified to take different variables into account depending on the kind of analysis that was being undertaken (for example, comparing players on usage or comparing players on performance) to allow any analyst to decide which were the stats that mattered when determining player salary. And so, after the usual few weeks of procrastination, I’ve finally built a working Player Comparables Tool, which I’ve put up for download here.

The underlying spreadsheet that drives the whole tool was put together by the amazing Rob Vollman, who literally wrote the books on hockey analytics (which you should go purchase immediately if you haven’t yet). Pretty much every piece of data you could want to include is in there, including both stats of the fancy and non-fancy variety. The tool is setup to allow you to choose up to 10 stats to include in your analysis, and to weight them as you see fit. All changes should be made to the highlighted cells on the Player Comparables tab for best use-if you’re an NHL exec whose tinkering leads to a bad deal, I’m not giving refunds.

The approach the calculator takes is to find a given player’s “nearest neighbours” across the selected variables, calculating a z-score for each variable to ensure that everything is scaled the same way. I’ll spare you the rest of the nitty-gritty details of the calculations, but if you want to dig into it a bit more, the calculation “steps” are more or less outlined in columns O-AR of the “Consolidated” sheet.

The one piece of data that’s missing is a differentiation between contracts that cover UFA years, versus deals that are only for a player’s RFA seasons. This unfortunately tends to understate the salary of some of the UFA deals that get signed, but with the data at hand it’s a necessary limitation.

A few other things to note:

  • If you choose only a few stats you’re likely to get wonky results and/or errors (this is due to ties in the nearest neighbour ranking).
  • If you want to add your own stats all you need to do is add them onto one of the tables (Main, PP, EV, PK), and they should automatically appear in the dropdowns.
  • If you want to use more than 10 players in the calculation, you just need to add rows below the 1-10 names, and adjust the formulas as appropriate.
  • All of the salaries in the sheet are based on 2013 cap hits. If you want to update, edit the Cap Cost column (CX) of the Main Page.

So how well does the predictor do in actually guessing free agent salaries? I took a very basic approach, equally weighting OZ%, ES CF%-Rel, ES TOI%, PP TOI%, PK TOI%, ES IPP, Total Sh%, ES PenD/60, ES Pts/60 and PP Pts/60, and compared the actual salaries with the nearest-neighbour predicted top 60 free agents from TSN. While this model is obviously a fairly basic one, it does do a decent job, generating an R^2 between predicted and actual of 0.25. With a bit of tweaking of the weights (and ideally, the inclusion of UFA/RFA deal info), it would likely get a lot better.

Actual vs. Predicted Salary for Top 60 Free Agents (salary data from TSN.ca)

Actual vs. Predicted Salary for Top 60 Free Agents (salary data from TSN.ca)

If you have any questions or issues with the sheet (or, if you find any bugs) don’t hesitate to let me know either in the comments or at puckplusplus AT gmail DOT com.

Tagged with: , ,
Posted in Free Agency, Predictions

When should teams attempt to block shots? Looking at the break-even success rate for shot-blocking

The 2013-2014 season was a painful one for Ottawa Senators fans. After reaching the playoffs in both of the previous two seasons, many analysts predicted that the Sens were on the verge of breaking through into the league’s elite. Instead, the Sens struggled to string wins together, and finished the year 11th in the Eastern conference in spite of posting a 52.4% 5v5 Corsi percentage, a number that had them 7th in the league.

One major reason that the Sens failed to capitalize on their relatively strong possession numbers is that their Corsi advantage failed to translate into recording more shots than their opponents. Much of this had to do with the fact that the Sens blocked shots at a rate that was significantly lower than the rest of the league. While the league average block rate was 25.6% (total blocks/total Corsi attempts against), the Sens only got in the way of 20.5% of the shot attempts directed towards their net. And while some of this may be bad luck, we do know that blocked shots show a reasonably strong repeatability at the team level. Moreover, there’s ample evidence to suggest that this reluctance to block shots was an intentional decision on coach Paul Maclean’s part.

Now there’s definitely an argument to be made that attempting to block shots can be a risky proposition. You may end up screening the goalie or deflecting the puck on your own net, both of which increase the odds that your goalie isn’t going to stop it. Letting the goalie see the puck and staying out of the way is a mantra that’s oft repeated, in particular by a certain Saturday night first intermission hockey host. But there are obvious benefits to blocking a shot too: a successful shot block has a 0.00% chance of going in.

The question then is, how successful do we need to be when blocking shots to make up for the increased risk of a screened or deflected shot. If we consider only two possible outcomes, a successful block that prevents a Fenwick attempt, or a failed attempt that results in either a miss (we’re not worried) or a shot on goal with an increased probability of going in, then we can calculate the rate that we need to be successful at in order to make the attempt worthwhile.

Read more ›

Tagged with:
Posted in Theoretical

What’s a goalie worth these days? Determining replacement level goaltending

The concept of a replacement level player is one of the most important ideas in sports analytics, but one that unfortunately is used relatively infrequently in hockey. Replacement level is meant to represent the level of talent that’s widely available to any team at little or no cost. Comparing players against replacement level is important because it essentially tells us whether a player is worth keeping or not – anyone performing below replacement level should be discarded, since it’s likely that any free-agent or waiver wire pickup would perform better. It’s important to note that this is different than comparing against the average player – when we compare against the average we know whether a player is better or worse than most of the players eating up minutes throughout the league, but it doesn’t give us any indication of whether he’s worth keeping around.

For position players figuring out an appropriate replacement level is extremely difficult – there’s no broad agreement as to what individual statistics should be used, let alone any idea of how to determine who a replacement level player is. For goalies, however, we have a half-decent metric (Even Strength Save Percentage), that’s broadly accepted as being representative of individual talent, even if it is somewhat more variable in the short term than we’d like.

Read more ›

Posted in Uncategorized
Follow

Get every new post delivered to your Inbox.