Friday, September 20, 2019

Preview: 2019/10/02 OTTAWA SENATORS @ TORONTO MAPLE LEAFS

2019/10/02 OTTAWA SENATORS @ TORONTO MAPLE LEAFS
OTTAWA SENATORS2529 Elo 2638TORONTO MAPLE LEAFS
28.2%W%(Model)71.8%
D. J. GREEN (2500)0 - 0MIKE BABCOCK (2520)
Roster Expectation (OTT)
NamePosGAPPIMHBPPPFW%
ARTEM ANISIMOVC0.200.260.460.201.050.880.0449.1
BRADY TKACHUKL0.180.280.460.361.770.960.0552.8
BOBBY RYANR0.180.300.480.261.550.940.0750.0
ANTHONY DUCLAIRL0.180.240.410.211.150.860.0450.0
TYLER ENNISL0.170.240.400.181.360.840.0550.0
JEAN-GABRIEL PAGEAUC0.160.250.400.261.761.100.0156.3
COLIN WHITEC0.150.280.440.271.270.970.0451.0
RUDOLFS BALCERSL0.150.270.420.271.421.030.0550.0
CHRIS TIERNEYC0.150.300.440.181.110.930.0455.1
CONNOR BROWNR0.150.240.380.181.150.880.0250.0
JORDAN SZWARZR0.140.230.380.271.400.990.0350.0
NICK PAULL0.140.240.380.241.600.960.0350.0
THOMAS CHABOTD0.150.310.470.261.411.220.070.00
ERIK BRANNSTROMD0.150.260.410.271.491.030.040.00
MAXIME LAJOIED0.150.240.390.271.401.150.050.00
CHRISTIAN JAROSD0.130.240.360.271.641.130.030.00
NIKITA ZAITSEVD0.110.220.330.241.891.530.020.00
CODY GOLOUBEFD0.110.230.340.301.441.090.020.00
DYLAN DEMELOD0.110.260.360.281.601.320.020.00
NamePosShotsSavesSVPGA
CRAIG ANDERSONG31.428.20.8983.2
Roster Expectation (TOR)
NamePosGAPPIMHBPPPFW%
JOHN TAVARESC0.390.480.870.361.150.510.1759.1
AUSTON MATTHEWSC0.350.430.790.291.110.700.1456.2
MITCHELL MARNERR0.270.510.780.351.110.550.1450.0
ANDREAS JOHNSSONL0.250.360.600.371.390.620.0850.0
ALEXANDER KERFOOTC0.240.370.610.381.200.520.1160.5
WILLIAM NYLANDERR0.240.430.670.311.070.440.1260.4
JASON SPEZZAC0.240.380.620.320.940.440.1260.2
KASPERI KAPANENR0.230.330.560.331.480.490.0650.0
TREVOR MOOREL0.210.350.560.361.430.630.0750.0
KENNY AGOSTINOL0.200.350.550.381.690.520.0750.0
NIC PETANC0.190.320.520.321.190.490.0750.0
FREDERIK GAUTHIERC0.190.310.500.351.520.580.0557.4
TYSON BARRIED0.230.490.730.341.170.860.180.00
MORGAN RIELLYD0.210.480.690.271.240.930.150.00
JORDAN SCHMALTZD0.200.330.530.361.370.700.060.00
JAKE MUZZIND0.200.400.590.411.991.080.090.00
BEN HARPURD0.180.300.480.421.640.790.050.00
KEVIN GRAVELD0.180.310.490.301.480.790.060.00
CODY CECID0.180.330.510.301.661.240.050.00
NamePosShotsSavesSVPGA
FREDERIK ANDERSENG29.326.90.9162.5
ANDERS NILSSON vs. TOR 1-2 (0 sho)FREDERIK ANDERSEN vs. OTT 6-6 (0 sho)
CRAIG ANDERSON vs. TOR 17-11 (3 sho)MICHAEL HUTCHINSON vs. OTT 0-3 (0 sho)
3d+ rest: 3-6-1Last 10 after break3d+ rest: 6-2-2
Committed/Against: 333-322IcingsCommitted/Against: 412-401
Committed/Against: 203-226OffsidesCommitted/Against: 216-185

Saturday, September 14, 2019

Elo-based approach to point-scoring fantasy

One of the challenges of Elo rating and ranking of hockey players with regard to fantasy sports is that the given rating only characterizes the given stat it describes. Many fantasy games - head-to-head and rotisserie require a player, or a team to excel at a variety of such stats, and the superposition of many ratings is neither easy nor necessarily answering the question of which player is preferable over another.

However, in points-based fantasy, where separate single-stat scores combine through a formula into a performance is naturally and relatively easily evaluated through Elo through the following steps:


  1. For a season three years ago (you can go further but you don't really need to) calculate the performance of each player in every game.
  2. Calculate the average, the best and the worst performances, averaged over each six consecutive games (so that we get about 13-14 rating time points)
  3. Set the half-span of the performance range according to this formula:
$s = max (max-avg, avg-min)$

Now, for each game, we accumulate the performances by six games, once a player has played six games, we apply his average performance over these six:
  • We can scale all the performance $P$ into a [0,1] score $S$:
$S = 0.5 + (P-avg)/(2*s)$
  • And then translate the performance into the change of the rating:
$ΔR = N_{games} * 32 * (R - 1 / (1 + 10^((2500-R_0) /200))) $
$R = R_o + ΔR$

The initial rating $R_0$ is set to 2500, too. As the rating of the player grows, it becomes much harder to maintain, as it falls, it's easier to climb back up. The averages become rolling and are being updated after each game day.

And then from each rating at the end of the calculation, we can derive the expected performance in a single game in two steps:

Expected result:
$R_x = 1 / (1 + 10^((2500-R_0) /200))$
Expected performance:
$P_x = avg + 2*s(R_x-0.5)$

The total performance would be the expected performance multiplied by 82 games.

Please note, that we do not need to take into account the opponents the players are going to face over a long span of games, it's safe enough assume the opponents are just average.

Here are the top ten lists per position when ranking the points system used by Daily Yahoo Fantasy:
Goalies: × wins + 0.6 × saves - 3 × ga + 5 × SHO
Skaters: × G + 4 × A + 2 × +/- + 0.9 × Sh + 1 × B + 2 × PPP

Goaltenders
NameEloExp.
BEN BISHOP2,6301217.9
DARCY KUEMPER2,6191153.0
ANDREI VASILEVSKIY2,6171141.2
SERGEI BOBROVSKY2,6101100.2
MATT MURRAY2,6101099.1
ROBIN LEHNER2,6091092.3
PHILIPP GRUBAUER2,6071077.7
CONNOR HELLEBUYCK2,6051066.1
ANTTI RAANTA2,6001036.6
PETR MRAZEK2,6001035.8

Defense
NameEloExp.
MARK GIORDANO2,559781.2
ERIK KARLSSON2,558773.4
VICTOR HEDMAN2,557768.6
BRENT BURNS2,556762.6
KRIS LETANG2,553742.2
ALEXANDER EDLER2,551728.3
JOHN CARLSON2,549714.7
ERIK GUSTAFSSON2,547704.8
TYSON BARRIE2,547702.2
SHEA WEBER2,542671.3

Right Wing
NameEloExp.
NIKITA KUCHEROV2,593995.3
ALEXANDER RADULOV2,581923.4
PATRICK KANE2,577892.6
VLADIMIR TARASENKO2,573868.0
DAVID PASTRNAK2,571858.4
ANTHONY MANTHA2,553741.2
MATS ZUCCARELLO2,545689.6
MARK STONE2,540658.1
MIKKO RANTANEN2,535627.2
REILLY SMITH2,535624.5

Left Wing
NameEloExp.
BRAD MARCHAND2,581919.6
JONATHAN HUBERDEAU2,571855.5
TAYLOR HALL2,568836.9
ALEX OVECHKIN2,563809.0
GABRIEL LANDESKOG2,558775.6
VIKTOR ARVIDSSON2,543679.6
MAX DOMI2,542668.7
TEUVO TERAVAINEN2,539651.8
JOHNNY GAUDREAU2,537641.0
ARTEMI PANARIN2,536632.6

Center
NameEloExp.
STEVEN STAMKOS2,579905.9
ALEKSANDER BARKOV2,577896.6
TYLER SEGUIN2,576890.7
NATHAN MACKINNON2,573870.9
PATRICE BERGERON2,572864.1
CONNOR MCDAVID2,567830.5
LEON DRAISAITL2,566828.2
JOHN TAVARES2,561792.7
SIDNEY CROSBY2,557769.7
DYLAN LARKIN2,553742.6

The positions are projected as provided by the NHL player files. Since your fantasy game may have players in differing positions, modify the lists accordingly.

We provide a service of ranking all players according to any formula. For a small fee paid via paypal (\$1) you'll receive a full CSV list of players with their ratings and 82-game expected score. For any extra formula add \$0.5 . For example, for \$3 you can get five formulas processed. Contact us on Twitter or by email for more details.

Please note that this list is less applicable for the Daily Fantasy itself because of the budget limitations.






Sunday, September 1, 2019

Elo-based shot evaluation - Addendum

One of the most important qualities of any researcher is the readiness to amend and sometimes even to disqualify the hypothesis she or he has been preparing for any length of time.

Thus, in our case we discovered significant inconsistencies between our model and the projections it produced on one side, and the quality of these projections on the other. Therefore we decided to dig deeper, and as the result we came out with the adjustment described below.

We saw that the rating change of a shooter and of a goalie is not reflective enough. They need much more finesse. Therefore we decided to calculate the change in the rating of the shooter as:

$R_s = R_{s0} + ΔR_{s\/g}$ (1)

where $ΔR_{s\/g}$ is the Elo relation between the rating of the executed shots by the player in the game (as player's rating), number of goals scored (result) and basic goalie rating (starting rating == 2500).

$ΔR_s\/g = F * N_{shot} * (S - 1 /  (1 + 10 ^ ((2500-1/N_{shot}∑↙{s}R_{shot}) / 400))) $ (1a)

and after a few iterations we saw that the optimal $F$ value is 6.

These values of $ΔR_{s\/g}$ are accumulated per goalie at the other end of the shot as well, but with opposite sign. After all skaters of the game have been processed, we apply the accumulated values to goalie ratings:

$R_g = R_{s0} + ΔR_{g\/g}$ (2)

These adjustments allowed us to bring the projecting of games' outcome to 59.5% in the regular season and to 58.9% in the playoffs. The log loss on the shot/goal predictions was basically unchanged at 0.211. The inflation of Elo was slightly negative, at about -0.0007 per event.