The days are getting shorter, and the weather is getting cooler. That means that my favorite time of year is almost here: basketball season. Having spent most of my life on Tobacco Road, I'm not sure that I had any choice but to love playing and watching the game.

As a proud North Carolina State University alum, I’m a college basketball fan first but have always enjoyed the professional game as well. Having studied statistics almost as long as I’ve studied basketball, it’s very cool when I get the chance to combine the two. Now is a good time to look back at the 2014-2015 NBA season with the new season about to start.

**The Data**

I downloaded results from every game played in the 2014-2015 NBA season, including the playoffs. With these data (available on the File Exchange), I can use the Bradley-Terry model to come up with a strength measure for each team in the league. My colleague Ryan Lekivetz recently wrote a cool post about the Bradley-Terry model (and potato chips!). But just to reiterate, the Bradley-Terry model allows us to model the outcomes of competitions. For basketball games, the model looks like:

Pr( team \(i\) beats team \(k\)) = \(\frac{e^{\beta_j}}{e^{\beta_j} + e^{\beta_k}}\)

Rewriting the model slightly gives us:

Pr( team \(j\) beats team \(k\)) = \(1/(1 + e^{ - (\beta_j - \beta_k)}) \)

Now our model looks like a no-intercept logistic regression problem, and all we have to do is prepare indicator columns as Ryan described in his post. Ryan's post also demonstrates how to launch and fit the model in the Generalized Regression platform in JMP Pro. The estimated \(\beta_j\) give us a measure of strength for every team in the NBA. And since we are using every game played, it means that our model will naturally adjust for strength of schedule.

The nice thing about the Bradley-Terry model is that we can also add covariates. So we don't have to look at just a team's overall strength, we can break it up into how strong they are at home versus how strong they are on the road. Now we will have something that looks like:

Pr( team \(j\) beats team \(k\) on team \(j\)'s court) = \(1/(1+e^{-(\beta_j+\gamma_j-\beta_k)})\)

Pr( team \(j\) beats team \(k\) on team \(k\)'s court) = \(1/(1+e^{-(\beta_j-\beta_k-\gamma_k)}).\)

When we fit this new model, \(\beta_j\) tells us how strong team \(j\) is on the road, and \(\beta_j+\gamma_j\) tells us how strong team \(j\) is at home. The estimated \(\gamma\) essentially tells us how much of a boost each team gets when playing on their own court.

**The Results**

I used the Generalized Regression platform in JMP Pro to help us fit our model. I used Forward Selection for estimation since that will help us separate the good (\(\beta_j>0\)) and bad (\(\beta_j<0\)) teams from the average (\(\beta_j=0\)) teams.

So let’s get to it: Here are our **top 10 teams when playing at home** and our **top 10 teams when playing on the road**.

One thing is clear from our model: Golden State was clearly the best team regardless of where the game took place (so it’s no surprise that they won the NBA title). But the Warriors were especially dominant at home; their home strength is head and shoulders above the pack. Let’s look at an example of how we can use these strengths to predict win probabilities:

Pr( Golden State wins at home versus LA Clippers) = 1/(1 + \(e^{-(2.795-1.096)})\)

\(= .85\).

So the Clippers were the best road team other than the Warriors, yet our model suggests that they only had about a 15% chance of winning at Golden State. The Warriors were an incredible 48-4 at home (39-2 in the regular season and 9-2 in the playoffs) and our model clearly reflects that.

And, of course, we have to look at **the worst teams** as well. This time, we don’t even have to differentiate between home and away. It turns out that our bottom teams struggled equally regardless of where the game took place.

This list shouldn’t surprise anyone who followed the NBA last year. But being on the list of worst teams does have a silver lining: It gives your team a better chance of improving in the draft. The Minnesota Timberwolves got to choose first in the 2015 draft and took Karl-Anthony Towns, who has all the makings of a superstar. Just out of curiosity, let's see what kind of chance the worst road team (the New York Knicks) has of winning at Golden State:

Pr( Knicks win at Warriors) = \(1/(1+e^{-(-1.354 - 2.795)})\)

\(= .015.\)

So the Knicks had less than a 2% chance of winning at Golden State, which makes for an even tougher trip across the country.

Finally, there is one more set of teams that caught my eye, the teams that were **strong at home but average on the road**.

Portland really sticks out to me: It's the fourth strongest team at home, yet average on the road. I find it interesting that three of these four teams are from the Western Conference, which is generally accepted as being much stronger than the Eastern Conference. Road games are especially tough when you are playing Western Conference teams like Golden State, San Antonio and Houston.

As a statistician and a basketball fan, I enjoyed looking at these data. It was especially nice to see that my two favorite teams, the Atlanta Hawks and Memphis Grizzlies, were near the top of the rankings. Hopefully, they can stay near the top throughout the upcoming season.