Tuesday, February 27, 2018

Website - A Page A Day, Part VII - Buchholz and Sonneborn-Berger

Prologue
Part I
Part II
Part III
Part IV
Part V
Part VI (I need to make a table of contents entry)

This might be the best possible timing for revisiting this page.

We are now past the first section of the website, 'League', and onto the second and probably the richest one - 'Teams'. It opens with Buchholz and Sonneborn-Berger coefficients for the teams.

And why is the timing the best? Because I am going to give a lightning talk about this at the VANHAC 2018!

Actually I already blogged about these two before, so now only a brief recap will follow with a couple of examples:

1. The Buchholz coefficient

The Buchholz coefficient is simply the sum of the points of your opponents.

B = Σn=1N Pn

So, if you played five games, and your opponents currently have 5, 3, 8, 6 and 6 points, your Buchholz value will be 28. Please note, that the current number of points is always used, not the number of points at the moment of meeting. The outcome of the game does not matter (for that one see the Sonneborn-Berger).

 the Buchholz coefficient can clearly show, who has had the stronger opposition up until a certain moment.

Then, if we look at the remainder of the schedule for each team, and for every game we add the opponent's points we get an excellent remaining schedule strength estimator.

Wait... there's a caveat.

Unlike in a chess tournament, where every round occurs for everyone at the same time, and barring very rare circumstances, every participant played an equal amount of games at any point of the tournament, there may be a significant difference in the number of games played by different teams, so summing the opponents up will not work very well. And these opponents also played a different number of games, so their total amount of points is not a very good indicator.

Fortunately, it's not a big deal. Instead of totals, let's operate with per-game numbers. So the NHL Buchholz Coefficient for a team after N games becomes:

B = (Σn=1PPGn)/N. 

Same applies for the remaining schedule strength, where the per-game numbers of the remaining opposition are summed an averaged.

So, if the team played three games against opponents who currently are:
A) 6 points in 4 games, B) 3 points in 3 games, C) 2 point in 5 games, then the team's Buchholz value would be (6/4 + 3/3 + 2/5) / 3 = 2.9/3 ~ 0.967pts.

Here are the Mar 12th 2017 Buchholz coefficients and remaining schedule strengths for the entire 30 times (and note how the Blues stand out with plenty of matchups vs Colorado and Arizona remaining).

+-----------------------+-----------+-------+-------+
| Team Name             | PPG       | Buch  | RStr  |
+-----------------------+-----------+-------+-------+
| Washington Capitals   | 1.4179105 | 1.119 | 1.133 |
| Pittsburgh Penguins   | 1.4029851 | 1.117 | 1.127 |
| Minnesota Wild        | 1.3939394 | 1.090 | 1.070 |
| Columbus Blue Jackets | 1.3731343 | 1.125 | 1.132 |
| Chicago Blackhawks    | 1.3283582 | 1.088 | 1.096 |
| San Jose Sharks       | 1.2985075 | 1.106 | 1.106 |
| New York Rangers      | 1.2941176 | 1.120 | 1.184 |
| Ottawa Senators       | 1.2537313 | 1.105 | 1.169 |
| Montreal Canadiens    | 1.2352941 | 1.122 | 1.097 |
| Edmonton Oilers       | 1.1791044 | 1.121 | 1.040 |
| Anaheim Ducks         | 1.1764706 | 1.102 | 1.150 |
| Calgary Flames        | 1.1764706 | 1.099 | 1.140 |
| Boston Bruins         | 1.1470588 | 1.115 | 1.151 |
| Toronto Maple Leafs   | 1.1343284 | 1.114 | 1.150 |
| Nashville Predators   | 1.1323529 | 1.105 | 1.116 |
| St. Louis Blues       | 1.1194030 | 1.144 | 0.943 |
| New York Islanders    | 1.1194030 | 1.142 | 1.103 |
| Tampa Bay Lightning   | 1.0895522 | 1.121 | 1.134 |
| Los Angeles Kings     | 1.0746269 | 1.118 | 1.104 |
| Philadelphia Flyers   | 1.0447761 | 1.122 | 1.179 |
| Florida Panthers      | 1.0298507 | 1.118 | 1.175 |
| Carolina Hurricanes   | 1.0000000 | 1.138 | 1.136 |
| Buffalo Sabres        | 0.9855072 | 1.127 | 1.158 |
| Winnipeg Jets         | 0.9565217 | 1.110 | 1.143 |
| Vancouver Canucks     | 0.9558824 | 1.115 | 1.152 |
| Dallas Stars          | 0.9552239 | 1.119 | 1.100 |
| Detroit Red Wings     | 0.9545455 | 1.151 | 1.059 |
| New Jersey Devils     | 0.9117647 | 1.148 | 1.132 |
| Arizona Coyotes       | 0.8358209 | 1.133 | 1.098 |
| Colorado Avalanche    | 0.6119403 | 1.128 | 1.164 |
+-----------------------+-----------+-------+-------+

2. The Sonneborn-Berger coefficient.
This stranger beast is a metric extensively used for tie-breaks in chess-round robins and as an auxiliary tie-break tool to the Buchholz coefficient in non-round robin. Let's start with the definition.

$$SB = Σ↙{n=1}↖N f(R_n,P_n)$$

where Rn is the result against the n-th opponent, and Pn is the opponent's points score.
The function  f(Rn, Pn) in the NHL is defined as:

f(Win, Pn) = Pn/N
f(OW, Pn)  = 2*Pn/(N*3)
f(OL, Pn)  = Pn/(N*3)
f(L, Pn)   = 0
where N is the number of games by that opponent

to account for the overtime point.

Then, we can calculate the minimal possible SBmin value for a team with the given schedule so far this season, by assigning Wins to be against the weakest teams played, and the OW/OL against the weakest remainder until the sum of W, OW and OL points add up to the number of points the team currently has.

Similarly we shall calculate the maximal possible SBmax value by assigning Wins to be against the strongest teams played, and the OW/OL against the strongest of the remainder, assuming OT wins are about 1/4 of the whole.

Then the closer the actual SB is to the SBmin or SBmax we may be able to say whether the team is successful more against the bottom feeders, the top guns, or whether it achieves its points from the whole spectrum available.

Here is the table describing how teams had their SB positioned between SBmin and SBmax. on 03/12/2017, multiplied back by the number of games of each team for better visibility:

TeamPointsSBminSBoptSBSBmax
Pittsburgh Penguins1.4044.2846.4846.2453.06
Washington Capitals1.4044.7046.7447.7752.89
Minnesota Wild1.3742.2544.3646.6350.66
Columbus Blue Jackets1.3743.1045.3646.4452.15
Chicago Blackhawks1.3441.6143.9043.7950.80
San Jose Sharks1.3140.6842.9744.1649.84
New York Rangers1.3041.2543.6745.5550.92
Ottawa Senators1.2537.8440.0741.7946.78
Montreal Canadiens1.2539.3741.7441.0548.87
Anaheim Ducks1.1936.8639.4340.1247.15
Calgary Flames1.1835.9738.4938.2046.05
Edmonton Oilers1.1635.8638.3237.4345.70
Boston Bruins1.1534.7337.2337.7444.72
Nashville Predators1.1333.2836.1438.0444.72
Toronto Maple Leafs1.1334.6436.9935.6644.02
St. Louis Blues1.1234.6937.1438.5244.50
New York Islanders1.1234.3636.9437.9444.71
Tampa Bay Lightning1.0932.6234.9835.4142.06
Los Angeles Kings1.0732.1034.6633.5642.34
Philadelphia Flyers1.0431.2633.5632.0140.48
Florida Panthers1.0330.8933.1230.9539.82
Carolina Hurricanes1.0029.4331.7832.4138.85
Buffalo Sabres0.9930.0932.4933.4339.68
Winnipeg Jets0.9627.5530.3531.4838.75
Vancouver Canucks0.9628.4830.9129.0238.21
Dallas Stars0.9428.0530.6231.1638.34
Detroit Red Wings0.9429.1231.1230.0237.13
New Jersey Devils0.9127.7830.1528.6337.27
Arizona Coyotes0.8425.1327.2425.8633.56
Colorado Avalanche0.6117.9019.7419.9825.25

Once again, we use Point Per Game values because the teams and their opponents have a different number of games played at most of the moments within a season.

We would dare to make one more step forward and claim that the team that performs closer to SBmax seem to have a coach problem (notable differences highlighted in green in the table above). The roster is there to compete against the best, but the points aren't trickling in at a pace goo

No comments:

Post a Comment