On Players Evaluation  Part VI (Skater's [and Goaltender nonSVP] Elo)
The most important conclusion of the last chapter that dealt with goalies' Elos is that it is defined by actual performance of a goaltender versus the expected performance of the team he is facing. That is the approach we are going to inherit for evaluating skaters.
For the start we compute the average stats of a league for each season. We do that for most of the stats that are measured, from goals and assists to faceoffs taken, up to the time on ice for the goaltenders. This is a trivial calculation. Thus we obtain season stat averages S_{avg}.
Now we can begin to work with the skaters. We assign them a rating of 2000 in each stat. The first and the most difficult step is to coerce the actual performance of a skater in each stat to a chesslike result, on the scale from 0 to 1. This is a real problem, since the result distribution for the number of players looks something like one of these chisquares:
Therefore we need to rebalance it somehow while preserving the following rules:

They should be more or less distributive, i.e. scoring 1 goal thrice in a row in a game should produce approximately the same performance as scoring a hat trick in one game and going scoreless in the other two.

They should still have the same shape as the original one.

The average rating of the league in each stat should remain 2000 at the end of the season.
So first, we do not apply rating changes after a single game. We take a committing period, for example, five games, and average players' performance in every rated stat over that period. Second, we apply the following transformation to the performance:
P'_{player} = (P_{player}  S_{avg}) / S_{avg}
where S_{avg} is the season average on that stat. It could be more precise to compute against the averages against of the teams played (see the first paragraph), but we decided to go via a simpler route at this stage.
Then we scale the performance by the Adjustment Factor A:
P'_{playeradj} = P'_{player} / A
The adjustment factor sets the result between 0.5 and 0.5. More or less. There still are outliers, but they are very infrequently beyond 0.5 . The A factor depends on the rarity of the scoring in the stat and varies from 6 (Shot on Goal) to 90 (Shorthanded goal). The adjustment for goals, is, for example, 9. The adjustment for faceoffs won is 20. The latter one might look a bit surprising, but remember that many players do not ever take faceoffs, e.g. defensemen. Naturally, only skaters stats are computed for skaters, only goalie stats for goaltenders.
The final Result R_{player} is then:
R_{player} = P'_{playeradj} + 0.5
So for the rare events we have a lot of results in the 0.480.5 area and a few going to 1. For the frequent events (shots, blocks, hits), the distribution is more even.
Now that we got the player's "result" R, we can compute the elo change through the familiar formula:
ΔElo = K * (R  (1/(1+10^{(2000  Eloplayer)/400})))
where K is the volatility coefficient which we define as:
16 * √(A) * √(4 / (C + 1))
A is the aforementioned Adjustment Factor and C is the Career Year for the rookies (1) and the sophomores (2), and 3 for all other players.
'What is 2000', an attentive reader would ask? 2000 is the average rating of the league in each stat. We use, because the "result" of the player was "against" the league average. If we used team averages, we would put the average "Elo against" of the teams faced instead.
After we have the ΔElo, the new Elo' of a player in a specific stat becomes:
Elo' = Elo + ΔElo
And from that we can derive the expected average performance of a player in each stat, per game:
R_{exp} = 1/(1+10^{(2000Elo')/400})
P_{exp} = (R_{exp}  0.5) * A * S_{avg} + S_{avg}
which is an "unwinding" of the calculations that brought us from the actual performance to the new rating.
The calculation differs for the three following stats:

SVP  processed as described in Part V.

Win/Loss  processed as a chess game against a 2000 opponent, where the result is:
R_{w} = P_{w}/(P_{w}+P_{l}), R_{l} = P_{l}(P_{w}+P_{l})
over the committing period.
The only subtlety here is that sometimes a hockey game may result in goalie win without a goalie loss.

PlusMinus 
R_{+/} = 0.5 * (P_{+/}  Savg_{+/}) / 10 (10 skaters on ice on average)
Then, via the regular route we get the Elo' and the expected "result" R_{exp}, and the expected performance is:
P_{exp+/} = (R_{exp+/}  0.5) * 10 + S_{avg+/}
Please note that we do not compute "derived" stats, i.e. the number of points (or SHP, or PPP), or the GAA, given the GA and TOI, or GA, given SA and SV.
An example of the computed expected performances that lists expectations of top 30 Centers in Assists (Adjustment Factor 9) can be seen below:
#  Player  Pos  Team  Games  A  a/g  Avg. g.  Avg.a  E a/g  E a/fs 

1  CONNOR MCDAVID  C  EDM  43  34  0.791  44.00  33.00  0.706  61.54 
2  JOE THORNTON  C  SJS  41  24  0.585  74.11  52.00  0.665  51.27 
3  NICKLAS BACKSTROM  C  WSH  40  24  0.600  69.20  50.10  0.663  51.85 
4  EVGENI MALKIN  C  PIT  39  27  0.692  62.09  44.73  0.659  55.33 
5  SIDNEY CROSBY  C  PIT  33  18  0.545  61.67  51.50  0.655  46.15 
6  RYAN GETZLAF  C  ANA  36  25  0.694  68.58  45.42  0.648  50.26 
7  EVGENY KUZNETSOV  C  WSH  40  22  0.550  54.75  27.75  0.605  47.43 
8  ANZE KOPITAR  C  LAK  36  16  0.444  72.73  41.55  0.594  40.33 
9  ALEXANDER WENNBERG  C  CBJ  40  28  0.700  59.00  25.67  0.583  52.50 
10  CLAUDE GIROUX  C  PHI  43  25  0.581  61.70  37.60  0.579  47.56 
11  TYLER SEGUIN  C  DAL  42  26  0.619  66.86  31.14  0.566  48.65 
12  RYAN O'REILLY  C  BUF  30  16  0.533  66.00  26.38  0.553  39.23 
13  DAVID KREJCI  C  BOS  44  18  0.409  60.64  32.36  0.528  38.05 
14  RYAN JOHANSEN  C  NSH  41  22  0.537  65.33  27.00  0.523  43.43 
15  JOE PAVELSKI  C  SJS  41  23  0.561  69.64  29.09  0.517  44.21 
16  HENRIK SEDIN  C  VAN  43  17  0.395  75.56  47.81  0.517  37.17 
17  DEREK STEPAN  C  NYR  42  22  0.524  68.00  30.86  0.508  42.31 
18  VICTOR RASK  C  CAR  41  19  0.463  67.00  22.67  0.497  39.37 
19  MARK SCHEIFELE  C  WPG  40  20  0.500  44.50  17.83  0.493  39.23 
20  JASON SPEZZA  C  DAL  35  18  0.514  62.71  37.79  0.490  37.60 
21  JOHN TAVARES  C  NYI  38  16  0.421  68.50  35.00  0.488  37.46 
22  MITCHELL MARNER  C  TOR  39  21  0.538  39.00  21.00  0.484  41.82 
23  STEVEN STAMKOS  C  TBL  17  11  0.647  65.11  29.00  0.474  29.97 
24  ALEKSANDER BARKOV  C  FLA  36  18  0.500  56.75  21.00  0.463  36.51 
25  MIKAEL GRANLUND  C  MIN  39  21  0.538  55.80  24.40  0.460  40.80 
26  PAUL STASTNY  C  STL  40  13  0.325  65.09  34.55  0.457  31.74 
27  JEFF CARTER  C  LAK  41  15  0.366  69.67  24.33  0.448  33.35 
28  MIKE RIBEIRO  C  NSH  41  18  0.439  62.88  33.06  0.447  36.32 
29  MIKKO KOIVU  C  MIN  39  16  0.410  66.83  34.25  0.445  35.14 
30  ERIC STAAL  C  MIN  39  22  0.564  74.46  36.77  0.442  40.99 
You can see more of such expectation evaluations on our website,http://morehockeystats.com/fantasy/evaluation .
Now, we ask ourselves, how can we use these stats evaluations to produce an overall evaluation of a player?
To be concluded...
0 Comments
Recommended Comments
There are no comments to display.