Wednesday, October 26, 2016

I Tweaked My Expected Goals Against Model

This morning, I started to create a formula for Expected Goals Against to try to measure how good a goalie is performing relative to how he should be performing. It factors in shots on goal and time in even strength and penalty kill situations, and I thought it was a decent start.

But the biggest issue I noticed was it didn't account for situations like last night's Flyers-Sabres game where the Sabres scored six seconds into a power play. Obviously that skewed the numbers, and we need a way to include quick success on the power play into our formula.

So, let's dive into some power play numbers.

2015-16 Power Play Statistics

Total power play attempts: 7655
Total power play time: 13254.8 minutes
Total power play shots on goal: 10258
Total power play goals: 1269 (16.58%)

Average time per power play attempt: 1.73 minutes (1:44)
Average shots on goal per power play attempt: 1.340
Average shots on goal per minute of power play time: 0.774
Average goals per power play attempt: 0.166
Average goals per minute of power play time: 0.096
Average power play shooting percentage: 0.124

The old formula is really just a blend between the following two formulas:
A1 = (SOG x .8467 x .4545 x .0219) + (SOG x .8467 x .3243 x .0748) + (SOG x .8467 x .2212 x .1866) + (SOG x .1533 x .1645 x .0328) + (SOG x .1533 x .4798 x .0883) + (SOG x .1533 x .3556 x .2078)
A2 = (5v5TOI x 0.222 x .0219) + (5v5TOI x 0.159 x .0748) + (5v5TOI x .108 x .1866) + (4v5TOI x .127 x .0328) + (4v5TOI x .371 x .0883) + (4v5TOI x .275 x .2078)
Sorry if that's confusing. A1 takes the total shots on goal from the box score and splits it into expected low-, mid-, and high-danger chances for both even strength and penalty kill. A2 takes the time on ice from the box score (both even strength and penalty kill) and calculates the expected shots and then goals against. I average the two together to balance out some of the potential quirks.

This new wrinkle, power play attempts, is going to affect A2. Each segment of the formula is simple:
Time on ice x Average shots on goal generated x Shooting percentage
We calculate that for both kinds of ice time and every danger level of scoring chance, and then we add them all up. But the 4v5 half of the equation doesn't account for quick powerplay goals in a one-game sample. Four minutes of powerplay time is actually better for a goalie than one minute of power play time, because four minutes would (generally) mean two successful penalty kills and one minute would (generally) mean two unsuccessful kills.

So for those three 4v5 segments, we need to adjust for power play attempts against. It's still easy to incorporate, which is really the focus here (any box score will include power play stats), and it'll allow us to work out one huge potential wonky... thing.

Here's what we're doing. We're splitting this into four groups.

A1 will be the same: (SOG x .8467 x .4545 x .0219) + (SOG x .8467 x .3243 x .0748) + (SOG x .8467 x .2212 x .1866) + (SOG x .1533 x .1645 x .0328) + (SOG x .1533 x .4798 x .0883) + (SOG x .1533 x .3556 x .2078)

A2 will be split into A2: (5v5TOI x 0.222 x .0219) + (5v5TOI x 0.159 x .0748) + (5v5TOI x .108 x .1866)

..and A3: (4v5TOI x .127 x .0328) + (4v5TOI x .371 x .0883) + (4v5TOI x .275 x .2078). But the change here is going to account for the average length of a power play. It's 1:44 instead of 2:00, and those 16 seconds are a tenth of the length of a minor penalty.

That extra ten percent matters, and so we're going to change A3 to this: (4v5TOI x 1.1 x .127 x .0328) + (4v5TOI x 1.1 x .371 x .0883) + (4v5TOI x 1.1 x .275 x .2078)

I'd also like to announce that I'm going to call this metric Jexpected Goals, because I like to unnecessarily start words with J on things that I create.

Jexpected Goals Report For Flyers-Sabres, 10/25

Philadelphia goalies: 2.41 expected goals, 3 actual goals
Buffalo goalies: 2.92 expected goals, 3 actual goals

The biggest note I'd make, and really the whole reason I decided to write anything about this idea at all, is all 3 actual goals against the Flyers were against Michal Neuvirth (1.42 expected goals) and none of those goals were against Steve Mason (0.97 expected goals).

Was it just a fluke though?

Mason vs. Neuvirth, 2015-16 Regular Season

Mason: 54 games played

  • Total: 3158.8 minutes, 1602 shots against, 132 goals against
  • 5v5: 2404.7 minutes, 1268 shots against, 82 goals against
  • 4v5: 255.0 minutes, 184 shots against, 32 goals against

Neuvirth: 32 games played

  • Total: 1827.9 minutes, 908 shots against, 69 goals against (nice)
  • 5v5: 1376.3 minutes, 674 shots against, 47 goals against
  • 4v5: 198.9 minutes, 156 shots against, 14 goals against

Before I even run it through my Excel sheet, please just note Mason's 0.835 PK save percentage and Neuvirth's 0.910. Yuge discrepancy.

Now, let's do expected goals:

  • Mason: 123.70 expected goals against (missed expectations by 6.71%)
  • Neuvirth: 73.17 expected goals against (beat expectations by 5.70%)

I'm trying to figure out why my model says Mason under-performed last season. Anyone who followed hockey last season knows that Philly had one of the best goalie tandems in the league. That rings especially true during the club's push to the playoffs.

What happened once they got into those playoffs? If you've held on for this long, I'm sure you already know.

Mason vs. Neuvirth, 2015-16 Playoffs

Mason: 3 games played

  • Total: 177.0 minutes, 81 shots against, 12 goals against
  • 5v5: 120.1 minutes, 44 shots against, 4 goals against
  • 4v5: 22.4 minutes, 24 shots against, 7 goals against

Neuvirth: 3 games played

  • Total: 178.6 minutes, 105 shots against, 2 goals against
  • 5v5: 138.5 minutes, 82 shots against, 2 goals against
  • 4v5: 14.6 minutes, 13 shots against, 0 goals against
The great thing about this small sample size is it includes that historic Game 3. It was a 6-1 beatdown in favor of the Capitals, and five of the six Washington goals were of the power play variety. That's going to skew Mason's results, obviously. And I don't have any metrics to judge how the fans performed, but I'm betting they came in a little below expectations for that whole ordeal. 

Expected Goals:
  • Mason: 6.72 expected goals against (missed expectations by 78.57%)
  • Neuvirth: 7.65 expected goals against (beat expectations by 73.86%)
Even if Mason had a manageable night in Game 3 and only allowed one or two powerplay goals, he still underperformed (bigly) relative to both the league average metrics and his regular season numbers. 

Neuvirth, on the other hand, was stellar. Obviously. He kept the Flyers alive for two games longer than they really deserved. 

2015-16 Vezina Candidates

It's driving me nuts that my model said Mason and Neuvirth performed below expectations last season. I'm jumping back in to check some of the top Vezina candidates from last season to see how they stack up. 

The final order for voting, by the way, was Holtby, Bishop, Quick, Luongo, Crawford, Schneider. 


Braden Holtby, Capitals: 66 games played
  • Total: 3846.8 minutes, 1803 shots against, 141 goals against
  • 5v5: 3009.7 minutes
  • 4v5: 338.0 minutes
Ben Bishop, Lightning: 61 games played
  • Total: 3595.3 minutes, 1673 shots against, 123 goals against
  • 5v5: 2768.5 minutes
  • 4v5: 331.5 minutes

Jonathan Quick, Kings: 68 games played
  • Total: 4040.13 minutes, 1820 shots against, 149 goals against
  • 5v5: 3142.9 minutes
  • 4v5: 397.7 minutes
Roberto Luongo, Panthers: 62 games played
  • Total: 3609.0 minutes, 1801 shots against, 141 goals against
  • 5v5: 2763.5 minutes
  • 4v5: 329.8 minutes
Corey Crawford, Blackhawks: 58 games played
  • Total: 3328.3minutes, 1719 shots against, 131 goals against
  • 5v5: 2623.1 minutes
  • 4v5: 281.6 minutes
Cory Schneider, Devils: 58 games played
  • Total: 3422.6 minutes, 1597 shots against, 122 goals against
  • 5v5: 2600.0 minutes
  • 4v5: 333.5 minutes
Expected Goals
  • Holtby: 147.36 (beat expectation by 4.32%)
  • Bishop: 137.31 (beat expectations by 10.42%)
  • Quick: 153.71 (beat expectations by 3.06%)
  • Luongo: 142.41 (beat expectations by 0.99%)
  • Crawford: 133.94 (beat expectations by 2.20%)
  • Schneider: 131.16 (beat expectations by 6.98%)
So they all outperformed their expectations, but Bishop and Schneider were at the head of the pack? That seems to be in line with the general feeling from the hockey analytics community, at least as far as I can recall. 

Neuvirth was in the mix for Vezina candidates on a per-game basis, but he played about half as many games as the big dogs. 

Conclusions

I went into this looking for some proof to back up my "Mason is better than Neuvirth" thinking. I don't think I got it. Oh well.

What we do have is a way to measure goalie performances against standardized past performances, and we have two reasons to think it's legitimately (at least somewhat) useful:

  1. It said Neuvirth outplayed Mason in the playoffs
  2. The top six in Vezina voting all beat expectations

-

Here's the Excel formulas (because I know I'm going to lose them and want them in the future):

Headers for row 2
SOG 5v5TOI 4v5 TOI SOG Expg 5v5 Expg 4v5 Expg TOI Expg Avg Expg Act Goals Notes

Formula for D3
=(A3*0.8467*0.4545*0.0219)+(A3*0.8467*0.3243*0.0748)+(A3*0.8467*0.2212*0.1866)+(A3*0.1533*0.1645*0.0328)+(A3*0.1533*0.4798*0.0883)+(A3*0.1533*0.3556*0.2078)

Formula for E3
=(B3*0.222*0.0219)+(B3*0.159*0.0748)+(B3*0.108*0.1866)

Formula for F3
=(C4*1.1*0.127*0.0328)+(C4*1.1*0.371*0.0883)+(C4*1.1*0.275*0.2078)

G3 =E3+F3

H3 =AVERAGE(D3,G3)

No comments:

Post a Comment