How are eWins calculated?
-
- Posts: 201
- Joined: Thu Dec 04, 2014 12:58 pm
How are eWins calculated?
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?
The Bearded Geek
Re: How are eWins calculated?
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.
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?
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.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.
Re: How are eWins calculated?
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.
-
- Posts: 201
- Joined: Thu Dec 04, 2014 12:58 pm
Re: How are eWins calculated?
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) ?
BLK= Blk/Gm* 36/MPG *((Away Blk/Blk)/(Home Blk/Blk))
and Steals would be:
STL= Stl/Gm* 36/MPG * (Opp TOV/Tm Stl) ?
The Bearded Geek
Re: How are eWins calculated?
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.
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.