Tuesday, January 17, 2017

On Players Evaluation - Part VII and Final (Bundling it all up)



Now that we obtained a way to estimate players' performances for a season, we can move on to estimate their performances for a specific game.

For the season of interest, we compute the average against for each teams, just like we computed the season averages. I.e. we calculate how many goals, shots, hits, blocks, saves are made on average against each team. Thus we obtain the team against averages Tavg. The averages are then further divided by the number of skaters and goalies (for respective stats) the team had faced.

After that we can calculate the "result" Rt of each season average stat in a chess sense, i.e. the actual performance on the scale from 0 to 1:
For Goalie Wins/Losses:

Rtwins = 0.5 + Tavgwins/(Tavgwins+Tavglosses)

For Plus-Minus:

Rt+/- = 0.5 + (Tavg+/- - Savg+/-) / 10 (10 skaters on ice on average)

For the rest:

Rstat = 0.5 + (Tavgstat - Savgstat) / K

where K is a special adjustment coefficient that is explained in part VI (and, as we remind, describes the rarity of each event)

And from the result Rt we can produce teams' Elo against in each stat, just like we computed the players' Elos.

Then, the expected result Rp of a player against a specific team in a given stat is given by:

Rp = 1/(1 + 10(Et - Ep)/4000)

where Et is the team's Elo Against and the Ep is the player's Elo in that stat.

From the expected result Rp, we can compute the expected performance Ep just like in the previous article:

Pexp = (Rp - 0.5) * A * Savg + Savg

(See there exceptions for that formula).

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.

Thus, if we want to project expected result of a game between two teams, since it's the expected amount of goals on each side, we compute the sum of the expected goals by each lineup (12 forwards and 6 defensemen):

Shome = SUMF1..12(MAX(PexpG)) + SUMD1..6(MAX(PexpG)) for the home team
Saway = SUMF1..12(MAX(PexpG)) + SUMD1..6(MAX(PexpG)) for the away team

while filtering the players that are marked as not available or on injured reserve. Please note that we assume the top goal-scoring cadre is expected to play, if we knew the lineups precisely, we would substitute the exact lineup for the expected one.

You can see the projections at our Daily Summary page. So far we predicted correctly the outcome of 408 out of 661 games, i.e. about 61.7% . Yes, we still have a long way to go.

Now to the different side of the question. Given that a player expectation overall is a vector of [E1, E2, ... En] for all the stats, what is the overall value of that player. And the answer is, first and foremost, who's asking.

If it's a statistician, or a fantasy player, then the value V is simply:

V = SUM1..n(WnEn)

where Wn are the weights of the stats in the model that you are using to compare players. Fantasy Points' games (such as daily fantasy) are even giving you the weights of the stats - this is how we compute our daily fantasy projections.

Now, if you're a coach or a GM asking, then the answer is more complicated. Well, not really, mathematically wise, because it's still something of a form

V = SUM1..n(fn(En))

where fn is an "importance function" which is a simple weight coefficient for a fantasy player. But what are these "importance functions"?

Well, these are the styles of the coaches, their visions of how the team should play, highlighting the stats of the game that are more important for them. These functions can be approximated sufficiently by surveying the coaches and finding which components are of a bigger priority to them, for example, by paired-comparison analysis. Unfortunately, there are two obstacles that we may run into: the "intangibles", and the "perception gap".


But that's a completely different story.

No comments:

Post a Comment