Subscribe Bookmark
samedgemon

Staff

Joined:

Sep 12, 2014

Kobe Bryant took 30,699 shots, and I've plotted them all using JMP

The Los Angeles Times recently produced a graphic illustrating the 30,699 shots that the recently retired Kobe Bryant took over the span of his 20-year career. It became such a topic of conversation that the Times later offered the graphic for $69.95 (plus shipping). The paper also published a follow-up article that described the process of creating the graphic and revealed that four software packages were utilized: Python, CartoDB, Pandas and Matplotlib.

I decided to commemorate Kobe’s retirement by recreating the graphic using only one software package: JMP, and in particular Graph Builder in JMP. The graph below represents the shots taken over the span of his 20-year career, displayed boldly in Lakers purple and gold!

KobeShotChart

How might data like this be used to the advantage of a team?

I’m convinced I could use this data to help a team win games -- and maybe even an NBA championship -- because what we have here is a serious intelligence-producing tool!

I grew up playing basketball and had the chance to interact with a lot of great coaches. I observed the way they approached “preparation,” and it has since influenced the way I approach analytics. One coach who was particularly influential was eight-time NCAA champion Pat Summitt, who always started by asking a question such as, “What can the opponent do that will cause my team problems?”

The answer to this crucial question then becomes the driving factor in game preparation.

So, as I looked at the shot chart, I thought about what great coaches would do with this information. I believe they would first ask this question: “If I’m playing the Lakers, how could their best player hurt my team?” And, in asking the question they would be driving the preparation and, specifically, how their team would prepare to stop Kobe Bryant.

To better evaluate the process, I used a Local Data Filter to look back to the 2009-2010 season when the Lakers last won the NBA championship. All season long, a “dream” matchup was anticipated between the Boston Celtics and the Lakers, and both teams advanced to the finals.

So, had I been coaching the Celtics, and prior to the beginning of the championship series, it would have been an intense period of getting my hands into the data and repeatedly asking these questions:

  1. How is Kobe Bryant scoring on us?
  2. How can we stop him?
  3. What can we learn from the data?

    Using Graph Builder and a Local Data Filter, I looked at the regular season games between the Celtics and Lakers to see if patterns might emerge indicating where Kobe was most effective.

    Take a look at the graph below. You can see that Kobe was effective on the left wing (right side of the chart), and made 10 of 15 shots from a particular mid-range zone. He was probably feeling comfortable in that zone, and that had to change!

    KobeImage2

    The graph below reveals something disturbing: Kobe was penetrating the lane, and while he  missed some shots (indicating that he was contested), a player of this caliber simply must be denied the lane as he would find a way to score.

    KobeImage3

    So to summarize the strategy, the Celtics must not allow Kobe to gain his “comfort zone” on the left wing, and deny him the lane. Did the Celtics accomplish this? Well, not exactly.

    The Celtics had Ray Allen, Paul Pierce, Kevin Garnett and Rajon Rondo. But apparently, they didn’t have Graph Builder to help them derive key intelligence. The graph below indicates that effectively nothing changed in the playoff series versus the regular season: Kobe hit 59 percent of his shots in that championship series in the key areas that have been identified (areas that he had demonstrated success during the regular season), and the Celtics lost to the Lakers 4 games to 2.

    KobeImage4

    Conclusion

    By asking the right questions, and efficiently visualizing the data in Graph Builder, we can uncover insights in the data that might otherwise go undetected. Such an approach is not applicable only to the Lakers and Celtics, but also to any industry. How can something like this help your work or business?

    Thanks to my SAS associate Tony Cooper for helping to build the basketball court in JMP Graph Builder! Watch this step-by-step video to see how we did it:

    https://youtu.be/kB5DjioWDg8

    2 Comments
    Community Member

    Rick Wicklin wrote:

    Your readers might be interested in seeing Robert Allison's shot chart for Stephen Curry and other NBA players. Analytical readers might enjoy a statistical analysis of Curry's shots in SAS, including some new techniques for nonparametric analysis of binary data.

    Community Member

    Pritesh wrote:

    Pretty cool. What would be interesting would be 3 pt shots where curry is making vs other all NBA players. There is a discussion to shift the 3 point line. it would be interesting if the 3 point line is moved how would it effect NBA. The code is already to create the NBA court interesting to see it hypothetically how would it look