On Players Evaluation - Part VI (Skater's [and Goaltender non-SVP] 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 Savg.
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 chess-like 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 chi-squares:
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 = (Pplayer - Savg) / Savg
where Savg 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 Rplayer is then:
Rplayer = P'playeradj + 0.5
So for the rare events we have a lot of results in the 0.48-0.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:
Rexp = 1/(1+10(2000-Elo')/400)
Pexp = (Rexp - 0.5) * A * Savg + Savg
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:
Rw = Pw/(Pw+Pl), Rl = Pl(Pw+Pl)
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" Rexp, and the expected performance is:
Pexp+/- = (Rexp+/- - 0.5) * 10 + Savg+/-
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.