Home » Misc » How is strength of schedule calculated ncaa basketball
How is strength of schedule calculated ncaa basketball
Calculating Strength of Schedule - DRatings
in General / Sports Predictions by Jeff Donchess
Strength of schedule is an incredibly interesting metric when one gets down into the thick of it. Like a lot of statistics, if you ask one hundred analysts to calculate strength of schedule (SOS), then you may get one hundred different answers. I want to break down the pluses and minuses of each system, and even show how systems may vary depending on the sport.
What Makes For a Strong SOS Calculation?
There are a few things that set different methods apart from the rest. Now, let’s name a few of them.
Accurately defining who a strong team is: First and most obviously, the system needs to be able to understand that, for instance, a Georgia Bulldog team with a record of 9-3 is better than a UAB Blazers team with a record of 9-3.
The method should fit the sport: Strength of schedule doesn’t necessarily follow a one size fits all solution. A solution is much easier to come by in a 162 game season with 30 teams in Major League Baseball versus a 12 game season with hundreds of teams in college football.
Home field or home court advantage: This is next level stuff that most systems don’t take into account. A game at Cameron Indoor arena is clearly much tougher than getting Duke on one’s own home court.
Bowl Championship Series Strength of Schedule
Though the BCS is now defunct, it’s calculation for strength of schedule lives on. This system takes the sum of the team’s opponent’s records and multiplies by two. It then adds that number to the team’s opponent’s opponent’s record and multiplies by one. Finally, that number is divided by three.
Calculation of Strength of Schedule by the BCS
I’d argue that this is currently the best non-rating based SOS calculation. This method does a few things well and is a really great method when record is the only known variable. Capturing the opponent’s opponent’s record allows the formula to differentiate between two teams like my Georgia/UAB example above. At the first level, SOS has Georgia as an equal to UAB, but at the second level, the opponent’s record of UAB is highly likely to be much worse than Georgia’s. The drawbacks of this system should be pretty obvious. You just aren’t going to get very much differentiation between a team like Georgia and UAB.
Central Mean Strength of Schedule
This is a ratings based strength of schedule system that gives less weight to opponent’s teams that are outliers.
From Jeff Sagarin’s Conference Ratings
I am mostly not a fan of this system even though the results don’t turn out much different than our next system. As one can see from the table, this system highly weights the median opponent team. This works well in a sport where there are a few opponents that are wild outliers.
Arithmetic Mean Strength of Schedule
The arithmetic mean is a simple average of the opponent’s ratings across the course of a season. In my opinion, this is the best system out there for calculating SOS, yet it still isn’t perfect. The one flaw can be most often found in college basketball. When a very strong team plays a very weak team or vice-versa. There are different levels of “very weak” teams and games against “strong very weak” teams could boost a team’s SOS even though victory is almost guaranteed regardless of the weak opponent. This is an area where a system like the Central Mean SOS could be strong.
What is the Best Strength of Schedule System?
This simple answer is that it just depends. Very basic strength of schedule systems in most major professional sports will yield similar results. More complex systems are needed as the number of games drop or the number of teams increases. A challenge in figuring out the best system is that there is no target variable to model off. Thus, it can be difficult to determine the difference between a good strength of schedule system and a bad one.
Fitting it in: Adjusting Team Metrics for Schedule Strength | by Alok Pattani | Analyzing NCAA Basketball with GCP
Co-Author: Elissa Lerner
While we wait to see how the NET nets out for the first time this Selection Sunday, one thing is certain: basketball heads will be chattering away about the difficulty of program schedules. You might have heard that it’s not whether you win or lose, it’s how you play the game. But that’s not entirely true — it also matters whom you play.
Intuitively, this makes sense: playing well against a strong team seems like it should matter more than playing well against a weak team. But when you hear about teams playing amazing defense, what does that really mean? Did that rating take the competition into statistically rigorous consideration? How might you figure out the significance of a team’s performance in a given season — that is, their performance in the context of all other team performance?
Let’s give it a shot.
A raw team ranking shows an aggregate calculation for a particular metric (e.g., offensive efficiency) over all teams over all available games in a season. But we wanted to show how a team’s rank in a given metric shifts when you account for their schedule of opponents. (After all, how highly should a team’s offensive efficiency be ranked if they only play the weakest defensive teams in the country?) To accomplish this kind of adjustment for schedule, we’d need to turn to BigQuery and Colab (if you’d like to follow along, open the Colab link and run in Playground mode, then click Connect in order to run the queries).
We started by querying for game-level data for all D-I games in the past few seasons. We computed pace, efficiency, and the Four Factors using the “d1_tm_game_stats” view we built, which covers team and opponent box score-level data, along with possession estimates, for each game.
Screenshot of BigQuery
We then ran a similar query to aggregate these metrics to the team season-level, and this became our base collection of team metrics for analysis. You can find these “raw” advanced stats elsewhere, like KenPom, Sports Reference, and TeamRankings.
From there, we exported a few CSVs and read them into Colab for public-sharing purposes (otherwise, we’d connect directly to BigQuery, as shown here). We used the pandas melt function to generate one row per-team per-stat, which would help us later on.
But we wanted to go further and get adjusted versions of each of the team stats. Our main idea behind “schedule adjustment” is that each stat of interest is a function of three things: a team’s ability, their opponent’s ability in a given game, and home-court advantage. Using a very loose model representation, you could think of it as:
We took the stat value from every game in a season, which included matchups of various teams and opponents. We then created dummy variables for both the team and opponent fields, with each set to 1 if the team is involved in the matchup (as “tm” or “opp”), otherwise 0. We then fit a ridge regression model using scikit-learn and used the coefficients to get team/opponent (and home advantage) estimates — the regression automatically did the opponent and site adjustment for us.
For each stat, our procedure generated a team “rating” that accounts for the strength of the opponent on the opposite side of the ball in the same stat (e.g. tm_efg_pct is adjusted for opponent’s opp_efg_pct), as well as home advantage. This is a more thorough and statistically valid technique than your typical “stat vs opponent season average” adjustment that you often find in other such analysis.
Snippet of ridge regression in Colab
(We liked ridge regression for this work because it goes beyond ordinary least squares, and uses a penalty term on the size of the coefficients to help handle multicollinearity and “shrink” coefficients (particularly in small sample size cases) — a form of regularization that gives more sensible estimates. This procedure not only gives the team ratings that “best fit” the game results given the model above, without going too extreme, but it also gathers them in a “melted” data frame with one row per team-season per stat — much like our season-stat combination generated above.)
We joined the raw and adjusted tables together for each season-team-stat combo, standardized each stat, then ranked each team by each stat. All together, we wound up with three values for each type of metric: “stat” on regular scale, “rtg” on 0–100 scale, and “rk” as D-I ranking (once for raw, and once for adjusted) for each of these for each team-season.
Onto the analysis!
Generally speaking, we’re interested in schedule-adjusted metrics, which you can scour through in this Data Studio dashboard. The findings align with what you’ve been hearing and seeing all season: Gonzaga and Virginia are dominating (at least in part) by virtue of their offensive efficiency, while Texas Tech, Virginia, and Duke are tough on defense. This makes sense — most season rankings adjust for schedule difficulty to some degree.
But when you isolate for schedule adjustments, you can see just how much of a difference the difficulty of a team’s schedule has on their overall metric rankings.
We generated an interactive plot of every team’s raw and adjusted version of each metric to show the impact of schedule adjustment. Using Plotly’s scatterplot functionality, along with team colors and names, you can hover over each point and see each school’s raw vs. adjusted ratings and ranks. Raw ratings are on the x-axis, adjusted ratings are on the y-axis. Up and right is better for each stat, even those where lower numbers are better (the axes get reversed for these).
Here’s net efficiency plotted (note: all plots show data from games through March 11):
Scatter plot of net efficiency, raw vs. adjusted
The gray line (which is y=x) shows where raw and adjusted ratings would be equal. Most teams fall relatively close to that line for most stats, since metrics don’t move too much for many teams when adjusting for schedule in this way. But some teams have adjusted ratings and rankings that are rather different from their raw ones, which suggests their competition (and home/road schedule) has a substantial effect on their performance in a particular metric.
For example, Abilene Christian University has a raw net efficiency rank of 21 — all the way to the right in the chart. But once it’s adjusted for schedule, their rank falls to 145.
Location of Abilene Christian on net efficiency plot (raw vs. adjusted)
Meanwhile, Kansas has a raw rank of 91, but once adjusted for schedule, they’re up to 20. What’s going on?
Location of Kansas on net efficiency plot (raw vs. adjusted)
This is schedule-adjusting doing its job. ACU, though enjoying a 25–6 overall record this year, is in the Southland conference (a mid-major). Kansas, despite having one of its worst seasons in recent memory, is still in the Big-12, and therefore gets a boost by virtue of the company it keeps. Major conference teams tend to have tougher schedules and benefit from schedule-adjusted metrics. Just look at Louisville: ranked 63 for net efficiency, but 16 when adjusted for their brutal schedule (Tennessee, Michigan State, Kentucky, and Indiana out of conference, then UNC twice, UVA twice, Duke, and the rest of the ACC during conference play).
Now that we’ve got a grasp of how schedule-adjusting works, let’s look beyond your basic adjusted efficiency stats, which others (most notably, KenPom) have made readily available. We went further and created adjusted versions of the Four Factors, which are much harder to find publicly. Like efficiency, adjusting the Four Factors can reveal some important insights. For instance, consider this plot of each team’s adjusted vs. raw effective field goal percentage (eFG%), which is a measure of how well they shoot from the field.
Effective Field Goal Percentage (eFG%), raw vs. adjusted
Notice two different shades of blue in close proximity towards the top right?
Duke and UNC plot locations for eFG%
Duke and North Carolina are nearly on top of each other on this plot (nicely evocative of the mere ten miles between the rivals in real life, we think). Raw eFG% has Duke ranked 76th and UNC 78th, which may seem a bit low for these high-profile teams. But when you adjust for their hard schedules — which, in this case, is based on opponents’ defensive eFG% — they move almost in unison up to 16th and 17th, respectively. Each of them played a relatively strong set of shooting defenses both out of conference and in the ACC (including each other, twice). Schedule adjustment makes them go from looking like merely good shooting teams to the more elite ones that they are.
Adjusting for schedule helps metrics better reflect a team’s quality in those facets of the game than raw metrics do. Moreover, a team’s schedule-adjusted metrics are generally more predictive of future performance than their raw metrics. That said, schedule isn’t everything. No matter how much we isolate for strength of schedule, part of the fun of March is seeing which teams surprise everyone. Try filtering the Data Studio dashboard of Four Factors to compare schedule-adjusted UMBC with Virginia from last season:
Adjusted Four Factors for UMBC and Virginia through Selection Sunday 2018
Hmm, how’d that work out, again? Oh, right.
On schedule for Sunday
Schedules aren’t the only way to weight and rank teams, but they are helpful. When you combine schedule strength with Four Factors, you can develop a pretty thorough picture of the season’s landscape. We’re looking forward to seeing how these shake out in the coming weeks!
0024
Caleb McConnell
22
Clifford Omoruyi
11
Geo Baker
Paul Mulcahy
4
Luke Nathan
55
Aundre Hyatt
5
Ralph Agee
35
Oskar Palmquist
1
Dean Reiber
21
MAWOT MAG
3
Aiden Terry
25
Jaden Jones
45
Jalen Miller
2
Logan Stephens
30
Current form
Hover over the form graph to view event details.
The height of the scale displays the difficulty of the game in the match, based on bookmakers' quotes.
Rutgers Scarlet Knights live score (and video online live stream), schedule and results from all basketball tournaments in which Rutgers Scarlet Knights played. Rutgers Scarlet Knights is playing next match on 12 Nov. 2022 vs. UMass Lowell River Hawks at the NCAA.
When the match starts, you will be able to follow Rutgers Scarlet Knights UMass Lowell River Hawks live score, updated point-by-point. Statistics will be updated at the end of the game. Rutgers Scarlet Knights previous match was against Sacred Heart Pioneers of the NCAA, the match ended with a score of 88 - 50 (Rutgers Scarlet Knights won the match). Rutgers Scarlet Knights pinned tab shows last 100 Basketball matches with stats and win/lose icons. There are also all Rutgers Scarlet Knights scheduled matches that they are going to play in the future.
Rutgers Scarlet Knights score and form chart, this is Sofascore's unique algorithmLive stream Basketball live score that we generate based on the team's last 10 matches, statistics, detailed analysis and our own knowledge. This chart is meant to help you bet on Rutgers Scarlet Knights matches, but we caution you that Sofascore Livescore is not responsible or liable for any financial or other loss, whether direct or indirect, as a result of any activity associated with any content on this site.
Sofascore Basketball livescore livescore is available as a mobile application for iPhone, iPad, Android, Google Play and Windows phone. Sofascore can be found in all stores in all languages. Install Sofascore app and follow all Rutgers Scarlet Knights games live on your smartphone or tablet!
About us
Sofascore livescore service offers results, scores and final tables. Follow your favorite teams right now! Results on Sofascore.com livescore are updated automatically and you don't need to update them manually. By adding the games you want to follow to "My Games", you will be aware of the results of all matches and all statistics.
Jahbril Price-Noel
Jordan Mason
Alex Morales
Will Martinez
Ja'Mier Fletcher
Delonnie Hunt
Javier Esquerra Trelles
Zaire Williams
Rob Taylor
Nigel Jackson
Ashton Miller
Elijah Ford
Composition
Raekwon Rogers
32
Jahbril Price-Noel
55
Jordan Mason
5
0024
2
Will Martinez
11
Ja'Mier Fletcher
22
Delonnie Hunt
3
Javier Esquerra Trelles
1
Zaire Williams
12
Rob Taylor
24
Nigel Jackson
Ashton Miller
13
Elijah Ford
4
Current Form
Hover over Form Graph to view event details.
The height of the scale displays the difficulty of the game in the match, based on bookmaker quotes.
Wagner Seahawks live score (and video online live stream), schedule and results from all basketball tournaments in which Wagner Seahawks played. Wagner Seahawks is playing next match on 12 Nov. 2022 vs. La Salle Explorers at the NCAA.
When the match starts you will be able to follow La Salle Explorers Wagner Seahawks live score, updated point-by-point. Statistics will be updated at the end of the game. Wagner Seahawks previous match was against Temple Owls of the NCAA, match ended 73 - 76 (Wagner Seahawks won the match). Wagner Seahawks pinned tab showing last 100 Basketball matches with stats and win/lose icons. There are also all Wagner Seahawks scheduled matches that they are going to play in the future.
Wagner Seahawks scores and form chart, this is Sofascore's unique algorithmLive stream Basketball live score that we generate based on team's last 10 matches, statistics, detailed analysis and our own knowledge. This chart is intended to help you bet on Wagner Seahawks matches, but we would like to caution you that Sofascore Livescore is not responsible or liable for any financial or other losses, whether direct or indirect, as a result of any activity related to any content on this site.
Sofascore Basketball livescore livescore is available as a mobile application for iPhone, iPad, Android, Google Play and Windows phone. Sofascore can be found in all stores in all languages. Install Sofascore app on and follow Wagner Seahawks live on your mobile!
About us
Sofascore livescore service offers results, scores and final tables. Follow your favorite teams right now! Results on Sofascore.com livescore are updated automatically and you don't need to update them manually.