In this post, we will learn about the Elo rating system. This system was originally developed to rate chess players, and has become a very popular tool to analyze many sports. We will look at how to apply the system to basketball to rate NBA teams. My goal is to show you the key assumptions and math behind Elo ratings, and how to implement the system in Python. We will use Elo ratings in upcoming posts to examine NBA playoff match ups.
My other goal is to point out some of the limitations of Elo ratings. In future posts, we will examine ways to address these limitations, and look at alternative ratings systems that try to do a better job.
Continue reading “Elo Ratings for NBA Teams”
This is our fourth post about home court advantage in the NBA. If the home team has a higher win probability, that advantage should be evident in at least some of the box score statistics. Home court advantage could result from better offense, better defense, or a mix of the two.
In this post, we’ll examine how basic box score statistics vary between home and away games.
Continue reading “Which Box Score Stats Contribute to Home Court Advantage?”
This post looks at whether particular NBA teams have demonstrated significantly different amounts of home court advantage over time. This is challenging, since team quality varies significantly over time.
The punchline? There is only very weak statistical evidence that teams have persistent and measurable differences in home court advantage relative to the league average.
Continue reading “Do NBA Teams Have Different Home Court Advantages?”
In this post, we are going to take another look at scraping NBA team information from Wikipedia. We will also see how generate a map of NBA arena locations.
Continue reading “Scraping NBA team information from Wikipedia (Revisited)”
In our our previous post about NBA home court advantage, we saw that home court win percentages varied over the past 21 seasons, but have averaged around 60%.
In this short post, we’ll try to drill a little deeper into the distribution of home court win percentages.
Continue reading “A Deeper Look at NBA Home Court Win Percentages”
In a previous post, we scraped NBA matchup data for the 1996-97 through 2016-17 seasons. We also noted that, during that time period, on average the home team won roughly 60% of home games during the regular season.
This is a big deal. An average team should win 50% of the time on a neutral court, but history shows that home court is worth a roughly 10% boost in win probability during the regular season. We’ll focus on the playoffs in a later post. Home court clearly matters a lot in the NBA post-season as well.
In this post, we’ll start by reviewing some of the main explanations for home court advantage in the NBA. Then, we’ll take a quick look at how the advantage has varied since the 1996-97 season. We’ll also look at how the advantage shows up in point differentials.
Continue reading “A First Look at NBA Home Court Advantage”
We are going to use machine learning and statistics to predict NBA matchups. To do this, we are going to need data on NBA games, and lots of it. So let’s get all the team matchups and box scores from stats.nba.com, and make them ready for use.
This post has two purposes. The first is to show you how to do the actual web scraping. The second purpose is to show you how to examine data before you us it. Data are almost always a bit messy and need to be handled with care. It’s important to take some time to look at data and to make sure it’s clean before use.
Continue reading “Web Scraping NBA Team Matchups and Box Scores”
Any analysis needs to start with data. To do serious sports analytics, we need to figure out how to capture information, assess its quality and put it into a useful format. Fortunately, there is a massive amount of quality sports data available on the internet, which can be your starting point for great analytics.
Continue reading “Introduction to Web Scraping”