Page 1 of 1
How are eWins calculated?
Posted: Wed Oct 28, 2015 12:33 pm
by BasketDork
I could have swore I've seen it on here before, but I'm not sure, and I know some guys like to keep their metrics in a 'black box', but what exactly is the methodology and formula behind eWins?
Re: How are eWins calculated?
Posted: Wed Oct 28, 2015 1:58 pm
by Mike G
There's no one formula, and I don't know that it would be called an algorithm. It's a process by which player statistical contributions account for their teams' wins. Before eWins, there was just a linear-weights sum of available boxscore stats.
Perhaps anticipating that this summary number wouldn't be the ultimate objective in itself, I never gave it a name, other than T. Basically,
T = Sco + Reb + Ast*1.333 - PF*.25 + Stl*1.5 - TO*1.5 + Blk*1.5
[These coefficients are flexible, depending on the context -- esp in a particular playoff series.]
These are always shown per 36 min and relative to arbitrary standards.
Scoring rate is relative to the scoring in the games a player is in. Standard is 100 pts/tm/G. In 36 minutes, 15 pts is avg. Essentially,
Sco = Pts/G * 36/MPG * 100/OppPPG * TS%/.527
This scales a player's points to what the rest of the league does in competition, and to his shooting efficiency.
Other adjustments include his role as starter/sub, Min/G, estimated assisted%, ...
Reb = Reb/G * 36/MPG * 44/OppRPG * (TmReb/OppReb)^.5
This too is fine-tuned by starter/sub role, mpg
Ast = Ast/G * 36/mpg * 200/(TmPPG+OppPPG) * ((AwayAst/FG)/(HomeAst/FG))^.5
Also adjusted (upward) for estimated assists that result in 3-pointers. This essentially offsets the (usually downward) home/away adjustment.
Blk rate is per36 and similarly adjusted for home/away discrepancy.
Stl rate is bumped up by OppTO/TmStl ratio.
All these exponents are flexible, as are the coefficients, but tend to be close to those shown (given a few games).
eW = (T-13.3)*Min/5500
Both 13.3 (my 'replacement player' T rate) and the divisor 5500 are flexible, but they don't change much.
Player eWins are summed for a team, and the team's expected wins are calculated:
xW = eW*2 - (G/2)
A team which totals 51 player eWins is expected to win 61 games (in 82) -- the difference from .500 W% just doubles.
This translation is a minor inconvenience. Some have been puzzled by it, but it has some unexpected benefit and convenience ...
To get eWins from the T rate, a spreadsheet produces feedback on the relative value of rebounds, assists, points, steals, blocks, fouls, and turnovers.
If TO (say) are weighed too heavily, I just toggle the weight down, and xWins more closely match (pythagorean) team Wins.
When the toggling of multipliers, exponents, and standards reaches a minimal difference between team pythWins (from point differential) and xWins, I'm done with that update.
Please inquire for further clarification.
Re: How are eWins calculated?
Posted: Wed Oct 28, 2015 2:14 pm
by Nate
Mike G wrote:...
When the toggling of multipliers, exponents, and standards reaches a minimal difference between team pythWins (from point differential) and xWins, I'm done with that update.
Please inquire for further clarification.
I'll try to go through things to see if I can make more sense of things, but this last bit suggests that you've got a large number of free variables and a small number of data points that you're testing against, and that's a recipe for an overconfident model.
Re: How are eWins calculated?
Posted: Wed Oct 28, 2015 2:23 pm
by Mike G
Constants, variables, parameters: I try not to vary the "constants" unless necessary. Then they have free range, but within constraints. It's more an art than a science.
Re: How are eWins calculated?
Posted: Wed Oct 28, 2015 3:25 pm
by BasketDork
When you say blocks are similarly adjusted for home/away discrepancy, would that be...
BLK= Blk/Gm* 36/MPG *((Away Blk/Blk)/(Home Blk/Blk))
and Steals would be:
STL= Stl/Gm* 36/MPG * (Opp TOV/Tm Stl) ?
Re: How are eWins calculated?
Posted: Wed Oct 28, 2015 5:12 pm
by Mike G
A category is created :
Adjusted Home Blocks = (AwayBlk/FGA)/(HomeBlk/FGA)*HomeBlk
(AdjHomeBlk + AwayBlk)/(TmBlk) = BlkFac -- "Blocks factor". For most teams -- 21 of 30 last year -- this is <1.
Note that regardless of number of games home and away, this gives a consistent estimate of 'extra' home blocks for a team.
Player block rates are multiplied by BlkFac^n
In this case, n is highly variable. Last year, it was just .45 .
As long as any adjustment consistently yields better Fit (PythWins:xWins), I keep it around.
I'm tweaking the Stl rate now. Yes, basically with the factor you wrote out.
The MPG factor is actually a lot more involved than that; I just showed the early, basic form of it. But there's a start/sub factor and other stuff in there.