Looking for similar NBA games, based on win probability time series

Inpredictable, a sports analytics site by Michael Beuoy, tracks win probabilities of NBA games going back to the 1996-97 season. When a team is up by a lot, their probability of winning is high, and then flip that for the losing team. So for each game, you have a minute-by-minute time series of win probability.

Beuoy added a new feature that looks for games with similar patterns a.k.a. “Dopplegamers”.

Tags: ,

FiveThirtyEight launches new NBA metric for predictions

FiveThirtyEight has been predicting NBA games for a few years now, based on a variant of Elo ratings, which in turn have roots in ranking chess players. But for this season, they have a new metric to predict with called RAPTOR, or Robust Algorithm (using) Player Tracking (and) On/Off Ratings:

NBA teams highly value floor spacing, defense and shot creation, and they place relatively little value on traditional big-man skills. RAPTOR likewise values these things — not because we made any deliberate attempt to design the system that way but because the importance of those skills emerges naturally from the data. RAPTOR thinks ball-dominant players such as James Harden and Steph Curry are phenomenally good. It highly values two-way wings such as Kawhi Leonard and Paul George. It can have a love-hate relationship with centers, who are sometimes overvalued in other statistical systems. But it appreciates modern centers such as Nikola Jokić and Joel Embiid, as well as defensive stalwarts like Rudy Gobert.

I’ve mostly ignored sports-related predictions ever since the Golden State Warriors lost in the 2016 finals. There was a high probability that they would win it all, but they did not. That’s when I realized the predictions would only lead to a neutral confirmation or severe disappointment, but never happiness.

I’m sure this new metric will be different.

Tags: ,

Exploration of players’ shot improvement in the NBA

Wondering whether if a player’s shot improves over the course of his career, Peter Beshai shows shot performance for all players from the 2018-19 season:

To understand whether or not a player actually gets better over time, we need some kind of baseline to compare their current performance against. On Shotline, the baseline is set after a player completes their first season in the NBA and has shot at least 200 times. This may sometimes feel a bit arbitrary, and I guess it is, but it feels reasonable to compare a player’s first season’s performance to their current to understand whether they have improved or not. The graphs are set up to allow you to compare their current performance against any other point in time too if the baseline is not sufficiently interesting to you.

Tags: ,

Simulation of fan emotions during a basketball game

During a game, the range of emotions can vary widely across a crowd. Will Hipson, making use of some emotion dynamics, simulated how that range can change through a game:

What I’m striving to simulate are the laws of emotion dynamics (Kuppens & Verduyn, 2017). Emotions change from moment to moment, but there’s also some stability from one moment to the next. Apart from when a basket is scored, most fans cluster around a particular state (this is called an attractor state). Any change is attributable to random fluctuations (e.g., one fan spills some of their beer, maybe another fan sees an amusing picture of a cat on their phone). When a basket is scored, this causes a temporary fluctuation away from the attractor state, after which people resort back to their attractor.

I want to simulate emotion dynamics for all the things now.

Tags: , ,

Using statistics for basketball efficiency

Ivana Seric is a data scientist for the Philadelphia 76ers who tries to improve player effectiveness by analyzing tracking data. Aki Ito for Bloomberg:

I really want to see the relationship of winning and teams who more deeply follow statistics. Is it at a place yet where this actually helps or is still more about gut and heart?

Tags: ,

Sprawlball, an in-depth look into the evolution of modern basketball

If you’ve seen a basketball shot chart in the past few years, it was probably made or inspired by the work of Kirk Goldsberry. Coming from a cartography and data visualization background, Goldsberry applied his skills to basketball data, and he has a new book called Sprawlball. It tells the story of how this modern era of shooting threes at high volume came to be.

Come for the charts:

Stephen Curry shot chart

Stay for the narrative:

[The Rockets] care more about analytics than aesthetics. Their offense is like an MIT Sloan Sports Analytics Conference fever dream come true. More than any other team in league history, the Rockets obsess over numerical margins. They love “threes, frees, and layups” because on average these shots accrue points at higher rates than other attempts, particularly two-point jump shots, which are the Rockets’ least favorite shot types.

Harden is a perfect leader for this approach.

And the illustrations:

And finally, I leave you with David West’s tweet the other night as the Golden State Warriors defeated the Houston Rockets, because it must be shared:

Stop letting nerds tell you how to play basketball….

It’s all about balance.

Grab Sprawlball on Amazon.

Tags: , ,

Damian Lillard’s Game-Winner in Context

Damian Lillard of the Portland Trailblazers hit a crazy game-winner the other night. The game was tied, the clock was winding down, and Lillard pulled up from a thousand feet away for the win. Lillard’s straight-faced reaction was as good as the shot.

Here’s how that shot matches up with all of the other threes Lillard has made during his playoff career:

Just nuts.

The R code, in case you’re interested:

library(png)
library(plotrix)

# Load data.
makes3 <- read.csv("https://flowingdata.com/projects/2019/lillard/threes_lillard.tsv", sep="\t")

# Plot all made threes
par(mar=c(0,0,0,0))
plot(-makes3$loc_x[-dim(makes3)[1]], makes3$loc_y[-dim(makes3)[1]],
     cex=.7, pch=19, col="#888888", 
     asp=1, bty="n", axes=FALSE, xlab="", ylab="",  
     xlim=c(-25, 25), ylim=c(0, 50))
segments(-makes3$loc_x[-dim(makes3)[1]], makes3$loc_y[-dim(makes3)[1]], 
         rep(0, dim(makes3)[1]), rep(5.25, dim(makes3)[1]), 
         lwd=.4, col="#888888")
draw.arc(0, 5.25, 9/12, angle1=0, angle2=2*pi, col="black", lwd=2)

# Game winner
x_win <- -makes3$loc_x[dim(makes3)[1]]
y_win <- makes3$loc_y[dim(makes3)[1]]
segments(x_win, y_win, 0, 5.25, lwd=3, col="#CF082C")

# Note: Download file at https://flowingdata.com/projects/2019/lillard/lillard_face.png
img <- readPNG("lillard_face.png")
rasterImage(img, xleft=x_win-2, xright=x_win+2, ybottom = y_win-2, ytop=y_win+2)
symbols(x_win, y_win, squares = 4, add=TRUE, inches=FALSE, lwd=3, fg="#CF082C")
text(x_win+2.25, y_win, "Bye, OKC.", pos=4, family="Georgia", font=3, cex=.9)

Tags: , ,

Does the first to 100 points usually win in the NBA?

Los Angeles Clippers commentator Ralph Lawler has a saying: “First to 100 wins. It’s the law.” The Los Angeles Times checked the numbers to see how true the statement is. It’s been true for over 90 percent of games over the years, but has become less true as pace and the three-point shot has changed dramatically in recent years. Now it’s more like first to 114.

Tags: ,

High school basketball players who make it to the NBA

Right in my wheelhouse, Russell Goldenberg and Amber Thomas for The Pudding looked at where top high school basketball recruits end up in the NBA (if they’re drafted at all). I like how you get the distributions at each level and the path of each player. The distributions build using animation, which is something I’ve been interested in as of late.

Tags: , ,

Top NBA player by zone

Kirk Goldsberry is back at ESPN. I put this here mainly because it’s nice to have the hexbin shot charts in the feed again.

Tags: ,