Showing posts with label Zone Start Adjusted Corsi. Show all posts
Showing posts with label Zone Start Adjusted Corsi. Show all posts

Monday, October 24, 2011

Zone Start Adjustments: A Rejected Idea

We got a lot of feedback from my recent article going over a method for adjusting for zone starts. Among the suggestions was actually my initial idea which I later rejected - look at the player's Corsi rate in each situation and weight them using average ice time in each situation. I rejected this idea in favor of the reverse - use the player's ice time and the league average Corsi rate in each situation to determine what the average player would get with the player's ice time and subtract that. In this article, I will discuss my initial idea, why I rejected it and how the results differ. The good news is that both methodologies yield quite similar results.

The idea is to use each player's Corsi rate in each type of start - the first shift after an offensive-zone faceoff, time after offensive-zone faceoffs but where a change has been made, time after neutral-zone faceoffs, time after defensive-zone faceoffs following a change and the first shift following a defensive-zone faceoff. Take those rates, assume the player has average ice time and you get an idea what that player's Corsi would be with even starts. To see how it works in practice, let's use the player that made me rethink things, Dan Carcillo.

Here are Carcillo's numbers in each zone:

Dan CarcilloCorsi / 60
Ozone - faceoff shift67.071
Ozone - after change-0.777
Neutral Zone-15.666
Dzone - after change-13.988
Dzone - faceoff shift-64.128

Here is the average percentage of minutes in each type of start:

Ozone - faceoff11.4%
Ozone - change19.3%
Neutral38.7%
Dzone - change19.3%
Dzone - faceoff11.4%

Averaging using those percentages as weights, gives us -8.574. In other words, if Carcillo got the results he did in each type of start and faced average time his ES Corsi rate would be -8.574. That seems pretty reasonable, the fancy thing I came up with last time put him at -9.956 and his even-strength Corsi rate was -11.441 with a 5-on-5 ozone% of 40.6 according to BTN.

The part that concerned me is that Carcillo's Corsi rate the first shift in the offensive zone was 67.071. He played 38 such minutes, which is a small sample and puts him 595th in such time but he did play 57 games last year. Someone playing a decent number of games and getting 40% ozone starts is just the kind of player we'd likely be the most interested in finding adjustments for. Among players with his ozone faceoff shift time or more, Carcillo had the 12th highest Corsi in the league the first shift after an offensive-zone faceoff. This fails the eye test and his ice time is an indication - he was only 21st on the Flyers at PP time.

This raises a theoretical problem with the metric - we are taking the average of five averages, some of which have very small sample sizes. Eric T from BSH suggested lumping in all the situations which are more-or-less neutral - neutral-zone faceoffs and time after faceoffs at either end after a change has been made. That's a great suggestion, which I'll look into later, but time the first shift after a faceoff at either end is the most problematic so it won't help. For Carcillo, it's very clear that his numbers are skewed for that first average. In contrast to the idea I proposed last week, the methodology of averaging averages will lead to bigger problems with small samples. It's not surprising that Carcillo's numbers in the rejected metric are better than the version that made the cut.

What's the Difference?


While I didn't know this at the time I published my article last week, I was quite happy to see that there is very little difference between the two ways of adjusting for zone starts for players that have played a decent amount. Here is a graph with the Zone Start Adjusted Corsi using the methodology I put forward about a week ago and the rejected idea I've discussed in this article for all players with at least 300 minutes of even-strength ice time last year. Needless to say, they are extremely similar.


Given how little difference there is in results, I think the better method to use is the one in the previous article - subtract off what the league average Corsi player would get with the player's ice time. It should do better with the smaller samples common in one season.

Here is a link to a google spreadsheet with ZSAC and ZSAC2, which is the methodology discussed here. I've also included the Corsi rate for each player following offensive-zone starts, defensive-zone starts and in neutral situations.

Friday, October 14, 2011

Adjusting for Zone Starts: Zone Start Adjusted Corsi

In a previous article I discussed zone starts and introduced a new approach to analyzing the effect of zone starts - breaking up performance by each type of ice time: offensive zone the first shift after the faceoff, offensive zone faceoff after a change, after a neutral-zone start, defensive-zone start after an on-the-fly change and the first shift after a defensive-zone faceoff. In this article, I will introduce a metric that adjusts for zone starts and a simplified metric that provides a good rule-of-thumb for you to use when looking at BTN.

Zone Start Adjusted Corsi

The idea is simple: take a player's ice time and use the league average Corsi for each type of start to determine what an average player's Corsi would be with the same ice time. Subtracting that off will give you how much he is above, or below, what the average player would get with his ice time. To see how this works, let's look at the poster child for zone-start adjustment, Manny Malhotra. Here is a chart summarizing Malhotra's time in each start, along with his Corsi numbers:

Manny MalhotraTime (mins)Corsi / 60
Ozone, first shift55.248.913
Ozone, after change170.8-7.376
Neutral Zone340.3-6.524
Dzone, after change142.3-13.073
Dzone, first shift178.7-31.234
All Time887.2-9.265

Here are the league averages for each type of ice time:

League AverageCorsi / 60
Ozone, first shift40.147
Ozone, after change2.818
Neutral Zone0
Dzone, after change-2.818
Dzone, first shift-40.147

Weighting by Malhotra's ice time gives us -5.496, meaning that if someone performing at the league-average level was given Mr. Malhotra's ice time he would have a Corsi of -5.496. To get Manny's Zone Start Adjusted Corsi we subtract that off, in other words add 5.496, to get -3.769.

A Rule of Thumb: Simplified Zone Start Adjusted Corsi

That's all well and good, but it would be nice to have something a little more portable. Even with all the data, I'd like to be able to just pull up BTN and get an idea how to adjust for a guy's Ozone%. To get something simpler, I recorded the Ozone% according to BTN for all of the players with at least 600 minutes of even-strength-goalies-on ice time and ran a regression to get the average adjustment for a given ozone%. Here is a scatter plot of the 508 players. The numbers on the x-axis represent how far off from 50% Ozone%, the y-axis is the size of the adjustment or the negative of what the average player would get with the same ice time:



As you can see, a simplified formula will come very close to the more complicated version above which forces us to look at the individual data. Any differences are based on how much time a player spends in the relatively neutral situations where he is jumping on the ice after a faceoff at either end. The result of this is a simple formula. To adjust for zone starts, multiply how many percentage points the player's Ozone% is from 50% by 0.18 and add or subtract accordingly. In formula, with Ozone% out of 100:

Simplified Zone Start Adjusted Corsi = Corsi/60 - (Ozone% - 50)*0.18

Another way to think about it is to add or subtract 1.8 for every 10 percentage points. So if you gave a guy with even zone starts 60% Ozone starts then we'd expect his Corsi rate to go up 1.8. If you put him in more defensive spots with just a 30% Ozone% then his Corsi will drop about 3.6.

Results:

I don't want to clutter it with a 900-row table, so I'll make a table with the top 25 and another with a few players of interest with particularly high or low Ozone%. Here is a google spreadsheet with all the Zone Start Adjusted Corsi stats from 2010-2011.

RankPlayerTeamPosZone Start Adjusted CorsiCorsiTime On Ice
1Kyle WellwoodSJSF22.12522.203462.1
2Torrey MitchellSJSF18.50418.336791.9
3Joe PavelskiSJSF17.30415.9391039
4Ryane CloweSJSF16.57116.7151148.7
5Alexandre PicardMTLD16.53817.308634.4
6Mason RaymondVANF16.51517.695922.3
7Ryan KeslerVANF16.50916.5881135.7
8Brian RafalskiDETD15.30516.0831033.4
9Nikolay ZherdevPHIF15.02914.418653.4
10Justin WilliamsLAKF14.84314.7171043.7
11Evgeni MalkinPITF14.77315.509607.4
12Sean BergenheimTBLF14.65213.625916
13Tim JackmanCGYF14.64516.275726.3
14Viktor StalbergCHIF14.21716.208799.6
15Pavel DatsyukDETF14.03913.3848.1
16Logan CoutureSJSF13.74314.0781133.7
17Alexander SteenSTLF13.72214.481081.5
18Jason DemersSJSD13.68513.5911169.9
19Mikael BacklundCGYF13.37614.034761
20Patrik EliasNJDF13.27513.3061082.2
21Mark LetestuPITF13.26214.613759.6
22Tomas HolmstromDETF12.9113.418840.7
23Chris HigginsVANF12.18311.156790.6
24Brian GiontaMTLF12.0812.1511185.1
25Tyler KennedyPITF11.81312.581996.8

People of interest:

PlayerTeamPosZone Start Adjusted CorsiCorsiTime On Ice
Henrik SedinVANF7.18511.8031235.3
Patrick KaneCHIF10.5213.7381139.9
Marian GaborikNYRF-7.194-4.829882.1
J-P DumontNSHF2.4764.62662.4
Ville LeinoPHIF-3.973-2.1871097.6
Manny MalhotraVANF-3.769-9.265887.2
Blair BettsPHIF-15.221-18.412501.9
Steve OttDALF-4.526-8.3461020.9
Jerred SmithsonNSHF-6.98-10.442965.3
Dave BollandCHIF-1.198-3.2806.3


Please Leave Feedback!

As this is my first effort in coming up with a new statistic, I would love some feedback on this. Does the methodology make sense? Is the Ozone% adjustment of .18 per percentage point pretty close to what you've been doing? Any and all comments appreciated.