These ratings are obtained through a regression model (a simplified version of it can be found here) and as we can see Monaco and Tenerife are the top-2 teams with Riesen Ludwigsburg following at the third place. Using these ratings we simulate the playoffs 10,000 times to make our predictions for the final ultimate winner. For the final 4 pairings, we draw them randomly in every simulation (since after all the same will happen when the 4 finalists are known!). Following are our initial projections:

It is not a suprise that Monaco and Tenerife are the favorites, while the cluster of Nymburk, Strasbourg, Neptunas and AEK that are matching up together at the top-16 and top-8 is the most balanced one in terms of probability of making it to the playoffs!

With the** first leg of the top-16 round** coming up following is the distribution of the expected point differential for each of these games:

Each colored area gives the win probability for the corresponding team (or else positive values for point differential correspond to home team win, while negative values correspond to visiting team win). As we see the two games that are expected to be the most balanced are PAOK-Pinar and Bayreuth-Basiktas.

With the **first leg of the top-16 round over**, following are the updates in our predictions. As you will see there are some pretty big swings in favor of Banvit, Nymburk and Riesen Ludwigsburg.

Taking the results of the top-16 leg 1 into account following are the projections for each of the upcoming rounds:

Tenerife is still at the top of the race, while Ludwigsburg has emerged as the second favorite, while Monaco’s *poor* outing (compared to the expectations) at leg 1 dropped their chances for the trophy to 10%.

As you can see we can easily get the offensive and defensive rating (efficiency) for the lineup, as well as its net rating (simply the difference between the offensive and defensive rating). We also know the minutes played by the lineup and its pace. Using these two we can get an approximation for the number of possessions that the lineup played. The pace value is the number of possessions per 48 minutes for the lineup and therefore the specific lineup shown above played a total of (335/48)*96.5 = 673.5 possessions. When we want to compare two lineups we can check the ratings provided on the NBA’s website and simply see which lineup has higher (lower) offensive (defensive) rating. Right?

Well, not so fast! There are lineups like the one above that have played more than 600 possessions, while there are lineups that have played less than 10 possessions (e.g., Irving, Larkin, Morris, Rozier and Theis have played a whopping 3 possessions!). How confident are we that the lineup ratings we have obtained, are indeed their *true* ratings, especially for lineups that have played few possessions? We could calculate a probability that lineup A is better than lineup B by making an assumption for (or learning through data) the distribution of the actual performance of a lineup . For example, Wayne Winston in his book Mathletics indicates that when it comes to a lineup’s +/- rating, the actual performance of the lineup over 48 minutes is normally distributed with a mean equal to the lineups +/- rating and a standard deviation of points. Therefore, a lineup that has played a few only minutes will be associated with a high variance and we will be able to further calculate the probability that this lineup is better than another lineup of the team (for which we can also model its performance through a similar normal distribution). However, even if this probabilistic analysis were to be the most accurate representation of reality, when you are presenting your analysis to the coaching staff you should have a *simple* (yet concrete) message. Probabilistic comparisons of lineups are great but too cumbersome to digest, especially if you are not trained in probabilities and statistics. So is there a way that we can *adjust* the lineup ratings to account for the fact that different lineups have played many more or less possessions and hence, their *true efficiency *might be different than the one reported on the NBA’s website (or the one you calculated on your own from the play-by-play data)? Luckily the answer is yes!

In order to achieve our goal we will make use of the notion of **Bayesian average**. The idea behind the Bayesian average is that when we have a small number of observations (possessions in our case) for an object of interest (lineup in our case), the simple average can provide us with a distorted view. Consider the case of the lineup mentioned above with 3 (offensive) possessions observed. In this situation, all three possessions can easily end up in a made 3 point shot, which will lead to an offensive efficiency of 300 (points/100 posessions). However, it is also very possible that all of the 3 possessions end up with a missed shot, a turnover etc., leading to an offensive efficiency of 0! Simply put, when we have few observations it is very likely to obtain extreme values just by chance. So here is where the Bayesian approach comes into play. In the case of probability estimates, obtaining new evidence allows us to use Bayes theorem and update a prior belief we had for an event:

What does this have to do with our lineup ratings? Well we can adjust the ratings based on some prior belief we have for them. In our case this prior belief can be the team weighted average efficiency of a lineup (or the league weighted average efficiency of a lineups). In particular, considering the team weighted average, the Bayesian adjusted efficiency of lineup i is:

Essentially for every new lineup we begin with a prior belief that this is a (team/league) *average *lineup. Then every time we obtain a new observation (i.e., a new possession) we can update our rating for the lineup. It should be evident that as we accumulate enough observations for a lineup (i.e., is large compared to ), the impact of our prior belief gets smaller and smaller. For example, while the Bayesian adjusted rating of the lineup in the above figure is 111.6 (practically equal to its “raw” rating of 111.9), for a lineup with fewer observations there can be significant differences. For instance, the Celtics lineup Baynes, Brown, Ojeleye, Rozier and Smart have played 33 possessions with a raw offensive rating of 60.5. However, the Bayesian adjusted rating of this lineup is 78.1, since we have considered a prior based on 24 possessions on average for each Boston lineup and a 102.6 offensive efficiency. The following figure presents the raw and Bayesian-adjusted efficiency ratings for all the Celtics’ lineups. The size of each point corresponds to the number of possessions observed for every lineup. As we can see for lineups with many observations the two ratings have a good correlation. In fact, there is a negative correlation (-0.25, p-value < 0.001) between the absolute difference of the two ratings for a lineup and the number of possessions observed for the lineups, i.e., the fewer the observations the larger the adjustment.

Furthermore, the Spearman ranking correlation between the two ratings is 0.83, which means that while there is a good relationship between the two ratings, there are differences in the rankings that they provide.

As it should be evident one can do the same with defensive and net efficiency ratings. I hope we will start seeing these Bayesian adjustments in *mainstream *statistics.

- People that oppose the use of Bayesian approaches often cite that the choice of prior might not be objective. Ignoring the fact that this might indeed be a benefit of Bayesian approach (i.e., incorporating our subjective belief with objective evidence), the more evidence we accumulate the less impact our prior belief will have on the final result.
- In our discussion above we chose the team average lineup rating as our prior. However, one could have other choices. For instance, we could take the team average of lineups that only includes players from the lineup under consideration. We could further temporally weight the individual observations, giving more weight to recent games/possessions.
- The raw ratings are not adjusted for opponent (or home field). This can be done before applying Bayesian adjustment. In particular, with being the raw rating of lineup , we can adjust for opponent strength using the average (defensive) efficiency of the lineups faced by as follows: , where is the (league) average efficiency, and is the average efficiency of the lineups faced by lineup (for defensice efficiency adjustment one should use the reciprocal ratio).

The initial projections are given in the following:

Patriots and Steelers (closely followed by the Chiefs) are the AFC favorites, while the Vikings are the NFC top favorite (despite the Eagles being the top-seed). The most possible matchup at the moment is Patriots-Vikings, which appeared in almost 10% of the simulations, while the probability of having a Pennsylvania Super Bowl (Steelers-Eagles) is around 7.5%.

**1/7/2018**

Wild card round is over, and Bills, Panthers, Chiefs and Rams are eliminated from contention. The latest projections are as follows:

**1/16/2018**

Divisional round is over and 4 teams remain in contention:

**1/22/2018**

Super bowl matchup is set and the Patriots are opening as the favorite:

]]>You can observe a few differences (e.g., AEK is taking many more shots from the restricted area, while PAOK is taking more shots from the paint), but overall there is little that you can say with regards to “how much” different the shooting tendencies of teams (players) are. One could possibly provide information about the exact locations of shots and obtain some type of shot density and compare. This is certainly possible but cumbersome. On the other hand, the fact that the shooting charts are mainly similar, it might mean that there are underline patterns that all of the teams (players) follow to a different extend. If we could identify these patterns (some type of shooting dictionary) we could then describe a team/player through these patterns.

One way to identify similar latent patterns in data that can be represented through a matrix **S** is matrix factorization. With matrix factorization one tries to express the original data matrix as a product of two (or more) factor matrices (e.g., **WH**). These factors include latent patterns of the original data. There are various techniques to perform this task, but for our case we will focus on Non-negative Matrix Factorization. In our case our data can be represented through a matrix **S **whose columns represent locations on the court and the columns represent teams (or players). However, what is court location? One could use the actual x,y coordinates by overlaying a grid over the court and obtaining the counts of shots in every grid cell. However, this would give fairly sparse and noisy results in our case where we have a fairly small number of games for each team/player. Another approach is to use as location the 12 court zones (Restricted area, paint, midrange slot, etc.) and then the element (i,j) of the matrix **S** represents the number of shots taken by team (player) i from court zone j.

Using **S **as our data (shot) matrix, Non-negative Matrix Factorization (NMF) aims at identifying matrices **W** and **H **such that:

where dist(**S**,**WH**) represents a distance metric between the original data matrix **S** and the product of the factor matrices **WH**. Furthermore, we constrain the factor matrices to be non-negative. This allows for easier interpretation of the results since the data in the original matrix are also non-negative. With regards to the distance metric, we have used the Frobenius norm of the matrices.

The next step is to decide on the number of patterns we want to find. This essentially corresponds to the number of rows for matrix **H** (which is equal to the number of columns of matrix **W**). Choosing the number of patterns is not trivial and is essentially very similar to the problem of choosing the number of clusters in a clustering problem. One approach to choose the number of pattern is by examining how good the approximation of **S **is with the factor matrices product. However, the approximation is monotonically increasing as we increase the number of patterns and hence there is a tradeoff between finding trivial patterns and approximation quality. This is the same as the problem of bias and variance; obtaining a large number of patterns essentially provides us with an overfitted model where practically every pattern represents a team/player. For our purposes we have used a number of patterns k = 7, since it provides a good tradeoff between approximation and interpretability (non-overfitting). Figure 7 presents the quality of approximation for the case of player matrix as a function of the number of patterns k (the results for the teams’ matrix are similar).

Every pattern (i.e., a row of matrix **H**) is essentially a 12-dimensional vector, each element of which correspond to one of the court zones. The value of the element further captures the *strength *of the corresponding court zone in the pattern. For example, one of the patterns identified from the players’ matrix is the following:

Simply put this pattern includes shots mainly from the restricted area and a few from the paint. Once these patterns are identified, the other factor matrix **W** can be used to obtain the *coordinates *of a player/team with regards to the *basis* of the patterns identified. This essentially allows us to express a player/team as a linear combination of these shooting latent patterns.

The following figure presents the 7 player patterns identified and the corresponding coefficients for some of the players (the coefficients for all the players can be found here). The coefficients are proportional to the number of shots a player takes. For example, Manny Harris appears to be getting the majority of his shots from pattern 1 (midrange shots), while Abromaitis is a corner 3 (pattern 2) and restricted area (pattern 3) shooter.

Each one of these patterns is also associated with an expected point per shot. In order to identify this we need:

- The coefficients c(i) of each area zone i for each of the patterns
- The expected points per shot p(i) from each zone area i that we have calculated in a previous post

Then the expected point per shots for each pattern r is:

The following table shows the expected points per pattern, where as we can see patterns 3 and 6 are the most *efficient *ones as one might have expected, since they include shots from the restricted area and the (left) corner.

We performed the same analysis for the 32 team and the patterns we identified are presented in the following together with some of the coefficients for select teams (all the coefficients can be found here).

Furthermore, the points per pattern for the team patterns are:

The above present a fairly *simple* application of matrix factorization in basketball. It provides a better understanding of the offensive/shooting tendencies of teams. Even more insights can be obtained if two matrices are analyzed, namely, one for made shots and one for missed shots. In this case, we can really identify potential inefficiencies of upcoming opponents. For instance, we can identify specific shooting patterns that a team is not successful at and *force *them to take those.

With regards to the factorization itself, the KL divergence usually works better as compared to the Frobenius norm that we have used in our analysis. Furthermore, one can overlay a grid (e.g., 1×1 meters) and use the grid cells as the locations. This will provide a very long matrix, but the NMF will essentially reduce the dimensionality. However, in this case there can be more noise as compared to when using the court zones and in this case it is better to apply NMF over an intensity surface instead of the raw counts.

ACK: I would like to thank Basketball Champions League for providing me access to the data.

]]>Using data for all the shots taken from the 32 teams in BCL we calculate the expected point per shot for each team and for each are of the court. The court is divided in 13 areas as shown in the figure below.

Given the field goal percentage of a team from each area of the court, we can easily compute the points per shot that the team is expected to add whenever taking a shot from that area. For example, if the field goal percentage of our team from the paint is 55%, the expected points from a shot taken from the pain are 0.55*2 = 1.1. The following figure shows the expected points per shot from each area on the court when considering all the shots taken from all the teams in BCL.

Similar to the NBA, the most efficient shots are the ones taken from the restricted area (under the basket), followed by all the three point shots. The most inneficient shots are the ones from midrange. Now, among the three point shots, the most efficient ones are the corner threes! An idea that has been thrown around for the higher efficiency of corner threes has been the shorter distance to the hoop. In particular, in the NBA, the corner threes are at a 22 feet (6.7m), while above the break the distance is 23.75 feet (7.24m). This is a fairly large difference. In contrast, the three point line in FIBA competitions varies much less, from 22.15 feet (6.24m) above the break to 21.65 feet (6.60m) at the corners. If distance was a big factor for the increased efficiency of the corner threes in the NBA, this difference in the efficiency should not be as much pronounced in FIBA competitions. This setting is exactly the setting of a **natural experiment**. The fact that in FIBA competitions the corner threes are still more efficient as compared to threes above the break, allow us to reject the hypothesis that the shorter distance at the corners is responsible for the majority of the efficiency difference. On the other hand, in both the NBA and FIBA contests, the fraction of corner threes that are assisted is much higher compared to the threes above the break. The actual fractions differ significantly between the NBA and FIBA competitions , but this is mainly an artifact of how assists are counted in the different competitions. The following table presents the fraction of shots from each three-point area in BCL.

Area |
Fraction of assisted shots |

Top of the key | 20% |

Left wing | 27% |

Right wing | 27% |

Left corner | 39% |

Right corner | 35% |

Overeall, above the break threes are assisted at a rate 25.4%, while corner threes are assisted at a rate 37.3%. A two-proportion z-test further allows us to reject a null hypothesis that the two rates are equal (p-value < 0.001). Given that assisted shots tend to be of higher quality (e.g., they tend to be open more frequent that not), the fact that corner threes are more efficient than above the break threes is not surprising. Of course, the question is why corner threes are more assisted, but this is a topic deserving its own in depth study and analysis, which we are currently performing.

Using the notion of expected points per shot we can have a quantitative way to evaluate the efficiency of a team. An efficient team will make shot choices that lead to larger expected points per shot. The above figure presents the league average expecte points per shot, which means that a team with similar efficiency as the league average, should attempt to take more shots under the basket and corner threes. However, this is not always necessarily true for all teams. Teams might not have the right personel for creating corner three opportunities. Similarly it seems inadvisible for a team to take may midrange shots, but there are several players (many of whom are future hall-of-famers – Dirk Nowitzki, Chris Paul etc.) who have made a career based on their efficiency from the midrange. Therefore, in order to estimate the expected points per shot for each team, we cannot use the league average numbers for the expected points per shot, but rather quantify these variables for each team individually. In particular, with f(z,t) being the FG% from area z for team t, n(z,t) being the number of shots team t has taken from area z and p(z) being the number of points awarded from zone z, the expected points xPTS[t] per shot for team t are:

The following figure presents the z-score for the expected points per shot for all 32 teams. As we can see the top-3 teams in terms of offensive efficiency (as captured by expected points per shot) are all from group A (having the first 3 spots in the group) !! Pinar Karsiyaka, EWE Baskets Oldenburgh and AS Monaco!

However offense is only half of the game. Defense can impact the efficiency of a team by either reducing the FG% from the different court zones, or by forcing the offense to take shots from court zones with low FG%. The following figure exhibits the z-score of the defensive expected points per shot for each team, that is the expected points of the shots allowed from the defense. Therefore the lower the better, i.e., the team allows less points per shot than an average team.

As we can see AS Monaco and Tenerife have the most efficient defense until now in the competition allowing more than two standard deviations less points compared to an average team. On the contrary EWE Basketbs Oldenburg allows more than 2 standard deviations more points compared to an average team.

Note that the above are raw numbers, i.e., they do not adjust for who a team faces. For example, scoring 1 point per shot against EWE Baskets Oldenburg is not as good as scoring 1 point per shot against AS Monaco. In order to adjust the xPTS (both offensive and defensive) for each team we solve the following optimization problem:

where **x **is a vector with the xPTS ratings for every team (offensive and defensive respectively), h is the home edge with regards to xPTS and m is the league average xPTS. Every game i will essentially provide us with two data points for the above optimization objective. Solving the above optimization problem we obtain a home edge h= 0.014 points/shot, and a league average xPTS of m = 1.038. The following table provides the results.

Note that for the defensive ratings a negative value is better (i.e., the team allows less points per shot than average). One could also get ratings for specific court zones. However, given the small number of games to begin with and the even sparser data with regards to shots in specific areas for specific games, we might not be able to provide a robust solution to the above optimization.

You can explore the (currently only offensive) efficiency of the BCL teams in the interactive app here.

Acknowledgments: I would like to thank Basketball Champions League for providing me with access to the data.

]]>Let us assume that we are evaluating a new kicker in practice. We ask the kicker to take 20 50-yard field goals. He makes 16 of them. What can we say about his success rate at 50-yard field goals?

In order to get a good estimate of the probability distribution of the kicker’s success rate σ, we will make use of the Bayes theorem:

In the above equation π(σ) is the prior probability distribution for the success rate of the kicker, while π(σ|data) is the posterior distribution we estimate taking into consideration the data we observed (in our case the 16/20 FGs). f(data|σ) is the likelihood of observing the data given the success rate σ. Finally, f(data) is the total probability of observing the data:

What is the prior distribution that we can use? We can simply look into all NFL kickers and use the distribution of their collective success rate in 50-yard FGs. The average success rate is around 70%. There are some kickers that are exceptional and way above average in 50-yard FGs (e.g., Justin Tucker), while the majority of the kickers are around average. Therefore, one could use a Beta distribution for the prior π(σ), with an average of 0.7. Given that the average of a Beta distribution is given by α/(α+β), where α and β are the distribution parameters, we choose α=5 and β=2. This gives us the following prior distribution:

The next element we have to calculate is the likelihood function f(data|σ). Simply put we need to calculate the likelihood of observing 16 successful kicks and 4 misses, given the success rate σ. This is nothing more than the binomial distribution:

Finally, the total probability of observing the data is:

Combining all of these we obtain the following posterior probability function for the success rate σ of our kicker at 50-yard FGs:

As we can see there is smaller uncertainty associated with this posterior probability since we now have some data to support this probability. For example, but calculating the area under the posterior distribution between σ = 0.8 and σ = 1, we find that the kicker has a 42% chance of being an 80% or better kicker at 50-yard field goals. A generic NFL kicker (i.e., one that is drawn from the prior distribution) has only a 34% probability of being an 80% or better kicker at 50-yard field goals. With more data we can further update our beliefs. For example, if he we give the kicker another 30 attempts and he makes 25 of them, our updated posterior distribution for the success rate is:

Using this posterior distribution we now can say that our kicker has a 58% probability of being an 80% or better kicker at 50-yard FGs.

It should be evident that Bayes theorem is a very powerful tool that allows us to make probabilistic inferences, updated for every new data point we obtain. Brian Burke of ESPN has used a similar analysis to find that Garoppolo has an edge over rookie QB’s. In particular, there is a 64% chance that Garoppolo is better than a generic-first round QB.

The code associated with the above analysis can be found here.

]]>

To answer this question I will follow a very elegant approach that originated in the sabermetrics community and was popularized in the book “The Success Equation“, where Mauboussin ordered the four major sports based on the level of luck that they involve. This approach is based on a very simple mathematical equation, which states that for two independent random variables X and Y, the variance of their sum is equal to the sum of their variances, i.e., var(X+Y) = var(X)+var(Y). In our case the independent variables X and Y correspond respectively to the skill and luck associated with the observed face-off win percentages of the players; the sum of these two variables includes everything observed.

I downloaded data on the face-offs won and lost for each player for the 2016-17 NHL season from hockey-reference.com. Half of the players took less than 3 face-offs, while only 30% of the players took more than 40 face-offs. In order, to avoid skewing the results from the high variability from players taking very few face-offs, I considered only the players with at least 40 face-offs, which leaves us with a sample of 255 skaters. The following table shows the top and bottom 5 players with respect to face-off won %.

I first calculated the variance of the observed face-off win% (FOW%) for the players in the data, which is equal to var(observed) = 38.27 (this is the var(X+Y) in the equation above). To calculate the variance expected in a completely random (with respect to face-offs) NHL, we model each face-off a player faced as a Bernoulli trial with probability of success equal to 0.5 (i.e., a coin flip). For each player, we flip the coin as many times as the face-offs they had in the season and calculate the simulated (purely random) face-off win%. For example, Matt Duchene took 1,098 face-offs, from which he won 687 of them. To obtain an estimate for Duchene’s FOW% in a purely random world we flip a coin 1,098 times and we keep track of how many times the coin lands on the “face-off win” for Duchene. Our coin flip series provides a 49.7% FOW% for Duchene in a world of pure luck. Repeating this process for all the players allows us to calculate the FOW% for each player in a completely random league. We can then calculate the corresponding variance over all the players in this random world, which gives us var(luck) = 12.65. Simply put, the contribution of luck in face-off success (or lack thereof) is only about 33% of the observed variance of the players’ face-off win %. In other words, **67% of face-off success can be attributed on the player’s skill**!

Furthermore, the actual win margin between teams A and B follows a normal distirbution with mean equal to r(A)-r(B) and standard deviation approximately 8.5 as the data show. We can then use the normal distirbution to obtain win probabilities (similar to the way that Stern obtains win probabilities for American football games). But enough with the method (if you are interested in details you can drop me a line) and here are the ratings after the first 4 games in the group phase.

Basically, Spain is 18 points better than an average team, while Greece and Georgia are the avearge teams in this tournament, with one game left in the group phase.

Now that the group phase is over here are the final ratings before the knock-out phase. I have further simulated the rest of the tournament 1,000 times using these ratings and I also provide the championship probabilities for each team. As you can see Spain is the overwhelming favorite with Croatia having some *decent *chances as well. (Probabilities will be updated as the games progress.)

Following are also individual games win probabilities.

**Round 16 win probabilities**

The round of 16 is over and with two “surprises” coming from Greece and Russia, qualifying for the quarter finals. The probability of seeing this matchup was about 2.2%, but in a short tournament underdogs will stun the favorites more often than in a full-fledged league. Following the games in top-16 we have the following updated ratings. Notice the emergence of Serbia and Latvia as well as the drop of Spain despite its win. The ratings are based on minimized the squared errors of the actual win margin with the expected one, so underperfromance will penalize your rating, and when the games are few (as in a tournament like Eurobasket) the ratings can quiet flactuate. This is not necessarily bad, since the variance is integral part in knock out games.

**Quarter finals win probabilities **

Quarter finals are now over and we have the final-4! As expected Spain and Serbia qualified easily, while Russia needed Greece to shot 50% from the free throw line to get the ticket for the semi-finals. Finally, Slovenia beat Latvia at a very close and possibly the most exciting game of the tournament yet. Following are the ratings after the quarter finals.

As we can see Spain is ranked first very close to second Serbia, while Slovenia follows closely third. Latvia is still high in the ratings! Despite the fact that Spain is half a decimal point better (!) than Serbia it has 2% less chance of getting the trophy at this point. The reason for that is the tougher matchup that it has to face in the semi-final as compared to Serbia. Following are the semi-finals win probabilities. It will be a great final-4!

**Semi finals win probabilities**

Slovenia hammered Spain in the semi-final and will face Serbia in the final. The pre-final-4 team ratings are as follows:

And the final two games’ projections:

**Bronze medal game:**

**Big final:**

With the final over and Slovenia getting their first European title here is the final rating for the teams. One of the tricky parts with these tournaments is that some teams have less games than others, and given that the total number of games is fairly small as well, there can be some noise in the ratings. For example, while Latvia is certainly a good team, it is ranked 2nd (made several wins and lost in a close game to the ultimate champions), which might look strange given that they made it only to top-8.

]]>For every team T we want to find its rating r(T) that minimizes the prediction (squared) error between the Vegas line of the total wins and the projected expected wins based on the ratings r of the other teams. A rating r(T) = 0 represents an average team, while a rating r(T) = 2 represents a team that is 2 points better than an average NFL team. How do we calculate the expected wins based on the ratings though? If we have two teams H (home) and A (away) with ratings r(H) and r(A), then the projected score differential is 3+r(H)-r(A), where 3 points is the home edge traditionally used in NFL. From these ratings we can obtain a win probability by using the finding from Stern, that the final win margin follows a normal distribution with mean 3+r(H)-r(A) and standard deviation 13.86. Stern used the betting lines for his analysis, so I calculated the standard deviation for the rating scheme presented here to be around 14.5 and this is the value I am using. Summing up all the win probabilities for a team gives us the expected number of wins for this team for the season. For my projections I used the lines reported on an article at USA today. You can play with the code and the data here. The ratings I obtained are in the following table (along with the betting line used).

As we can see the teams with the 3 highest ratings are all AFC teams (Patriots, Raiders and Steelers). Using these ratings we can obtain win probabilities for all the regular season games (based on the normal distirbution mentioned above). You can find all the projections here. The following matrix presents the win probabilities for every possible mathcup based on this pre-season ratings.

]]>

So let us focus on sacks then. Obviously the total number of sacks are impacted by the total number of pass attempts (if you never pass, you will never be sacked, but this does not mean your offensive line is necessarily good). This is easily fixed by using the sack rate, i.e., the ratio between the number of sacks and the number of passing attempts. Raw sack rate though is not enough! Having a sack rate of 0% against the Browns is not the same as having a 0% sack rate against the Broncos (even though Myles Garrett might beg to differ). So you need to adjust for the opponent strength. In order to do so we will define the offensive line’s efficiency of team T as . An average offensive line will be represented by . However, we said that we need to account for the defensive line and its pass rushing ability and hence, we will define the pass rushing efficiency of team T as . With being the average sack rate, we can predict the sack rate of team T1 when facing team T2 as: . If the offensive line of T1 is better than an average offensive line allowing for a smaller sack rate. Similarly, if , the pass rushing of team T2 is better than average. How do we find the “o”s and “d”s (as well as the average suck rate $s_R$ which should be adjusted for team abilities)? We will use a regression equation (not linear as you will see) and we will minimize the following objective function:

The minimization happens over the variables o, d and . is the actual sack rates observed in game k (offensive line of team i versus defensive line of team j). So the benefit is that with this optimization we are also getting ratings for the pass rushing of teams! Using last year’s data, which were obtained through nflscrapR, the following is the ratings obtained.

As we can see Cleveland had a very bad offensive line (3 times worse than the average offensive line) and a bad pass rush as well (50% worse than average). The Giants appear to have had the best offensive line (in terms of sack rate) last year, while Titans were a close second. Of course, sack rate is only one of the possible ways to evaluate an offensive line, but the good thing is that one could use the same approach to rank lines with other metrics. It is also possible to obtain multiple rankings and then integrate them to a single one using an algorithm like Borda count or the Condorcet method.

]]>