November 28, 2006

Individual Player Contributions

I've been working on many methods to scale out the line effects, this one appears to be the most promising at this point. Not to make any comparisons, but David Johnson has created one as well.

Method
I assume players scores are added linearly and that the line effects are primarily caused by pairs (this method can be extended to 3's, 4's or even 5's). Before going into the details I'll provide some quick short had I12 = I12 = total ice time player 1 and player 2 spent together, S1 = score - goals/hour for player 1, G12 = G21 - expected goals (based on shots for/against) while player 1 and player 2 were on the ice. Now I assume that I12*(S1+S2)/2 ~ G12 that is to say that the average between the two players goals per hour multiplied by ice time should be approximately the number of goals for/against. So if one player is very defensive and the other is terrible defensively they should be average defensively together. Now I know G12, that is to say I know how many (expected) goals for and against for any combination of players and I also know how much ice time every player has spent with any pair. But, I do not know S1 and S2, these are the individual scoring statistics (units: goals/hour). Now depending on the team there are 30 or so players who have played a game with the team so there are 30!/(28!*2!) = 435 equations, with 30 unknowns. Using these variables I can simply calculate the coefficients using a regression (no constant though). I wrote my own regression code for this matrix and as such I don't have error details: I don't know how well it performs.

Benifits:
  • The benefit is that this algorithm will not alter the actual statistics significantly so if, for example, one Sedin has 1 extra goal compared to the other they will still be rated equally.
  • It also allows significantly different scores for players who do spend significant time together given significant scoring differences, due to the fact that: a lower S1 can be made up by a higher S2.
  • It doesn't chase low minute players statistics as the coefficients will be small and will have a smaller squared error.
Negatives:
  • It produces extremes periodically (negative goals for/against), you can't score negative goals for...
  • The scoring rates solutions (S1, S2) aren't very comparable between teams or even fully understandable how they got there.
  • Since S1 and S2 aren't very logical, this leaves me multiplying by ice time to get an approximate "individual plus minus" statistic.
I haven't tested it with past data and this season doesn't have enough data to make these results anything but full of problems, but I primarily posting this for a reader response, that is to say, for people to criticize or compliment the results to see if I should continue this development. I find it interesting to see the offensive numbers (Plus) vs. defensive numbers (Minus). D just calculates the difference between them. I'm just posting the Northwest division to start with.

Vancouver


NLastnameIPlusMinusD
1SEDIND603029
2SEDINH573720
3GREENJ372116
4KESLERR463016
5NASLUNDM534013
6KRAJICEKL50409
7BIEKSAK45387
8BULISJ3436-2
9MITCHELLW5760-3
10FITZPATRICKR4953-4
11MORRISONB2531-6
12SALOS4855-7
13COOKEM3744-7
14LINDENT1119-8
15OHLUNDM4757-11
16PYATTT2337-14
17CHOUINARDM1329-16
18BURROWSA1835-17

Minnesota


NLastnameIPlusMinusD
1BOUCHARDP47434
2KOIVUM3131-1
3RADIVOJEVICB3741-4
4BURNSB2028-8
5JOHNSSONK4757-10
6BOOGAARDD317-14
7CARNEYK2642-16
8WALZW1735-18
9WHITET4161-20
10ROLSTONB4769-22
11VEILLEUXS1538-23
12DEMITRAP3765-28
13PARRISHM1544-29
14SCHULTZN3268-36
15SKOULAM4381-37
16FOSTERK3271-39
17NUMMELINP4091-51
18DUPUISP1571-56
19SMITHW1979-60


Edmonton


NLastnameIPlusMinusD
1BERGERONM533023
2THORESENP392217
3LUPULJ463412
4STAIOSS61548
5SYKORAP41356
6TORRESR41383
7WINCHESTERB19163
8HEMSKYA3940-2
9REASONERM3334-2
10STOLLJ3841-3
11PISANIF3339-6
12TJARNQVISTD5362-9
13GREENEM3545-10
14SMIDL4354-11
15SMYTHR4657-11
16PETERSENT2234-12
17HORCOFFS4262-21
18SMITHJ3772-34


Colorado


NLastnameIPlusMinusD
1RYCROFTM521340
2RICHARDSONB542430
3HEJDUKM714130
4ARNASONT643727
5SAKICJ674225
6KLEEK815724
7CLARKB724824
8MCLEANB573522
9STASTNYP644222
10BRISEBOISP664620
11LAPERRIEREI583919
12VAANANENO482919
13LILESJ604218
14SKRASTINSK766016
15BRUNETTEA584415
16LAAKSONENA382314
17WOLSKIW453113
18SVATOSM453510


Calgary


NLastnameIPlusMinusD
1LOMBARDIM483613
2TANGUAYA625111
3NILSONM29226
4KOBASEWC36306
5WARRENERR36324
6FERENCEA43430
7MCCARTYD89-1
8HUSELIUSK2933-4
9AMONTET2833-5
10LUNDMARKJ1420-6
11RITCHIEB2835-7
12REGEHRR4453-9
13PHANEUFD7078-9
14LANGKOWD4353-10
15HAMRLIKR6075-14
16FRIESENJ1834-16
17IGINLAJ5269-18
18ZYUZINA2054-34

3 comments:

Jeff J said...

1 - It's possible that some pairs may be greater than the sum of their parts (i.e. a set-up guy and a finisher will produce more than a two set-up guys). Maybe it's not linear. Linear is nice for it's simplicity, though.

2 - Since shots for/against are the main criteria for productivity (understandable, to remove goaltending from the equation), is there a risk that a 'shoot-from-anywhere' type of player might be overstated?

JavaGeek said...

1 - Technically speaking a nonlinear model is ideal, and I hope to do this in the future. As with all non-linear math it's a lot more complicated. Assuming coaches aren't stupid (putting two set-up guys together with no finisher) then this is reasonably accurate, but we all know coaches. Of course the more combinations of variables you use the less accurate the resulting values will be (you'll be chasing the random variations). So I'll have to try and find a balance...

2 - Yes. My best example here is Josh Green [top ranked offensively, but no goals this year?]. This guy keeps taking shots and none go in. The problem here is telling what is random variation and who can't score. The shot quality stuff scales out a lot of problems, but it can't make up for players who simply can't score...

David Johnson said...

Is Rycroft really the best player on Colorado? Is Iginla really the second worst player on Calgary? Is Hamrlik the 4th worst and Phaneuf the 6th worst? Not sure about that.

I briefly looked at using shots in my rankings but seemed to get worse results so I am not sure how good they are. Maybe if you incorporated your shot quality stuff into the process the results will be better.

Another thing I would really try to do is make players on different teams comparable. One of the biggest problems with +/- is you cannot compare players across teams because +/- is so team dependent. Producing a single number that can do a decent job in comparing players on different teams who play with and against different players and in different situations was the main goal in creating my rankings.