The NBA's Three-Point Revolution

Posted on Aug 14, 2018


Three-point field goals have transformed the landscape of the NBA.  Teams are launching more three-pointers than ever and with the 2017-18 season bringing in new highs in television ratings, attendance, merchandise sales, franchise valuations, and player salaries, it makes sense now more than ever to evaluate the efficacy of this strategy.


To evaluate how the NBA has changed over the years, I made use of Scrapy, a web scraping framework written in Python to extract data from  The final dataset included data by team and season from the 1946-47 season up through and including the 2017-18 season.

Exploratory Data Analysis:

With the exception of a brief spike in three-point field goal attempts in the mid-1990s (in response to a rule change temporarily moving the three-point line in), league-wide three-point field goal attempts per team per game have largely increased linearly.  The growth has accelerated over the course of the last four seasons.

We see a very similar trend with three-point field goals made over this same time frame.

After an initial league-wide improvement in three-point shooting ability, three-point shooting percentage has remained consistent over the past several decades.

Further analysis makes it clear that teams are not playing faster and simply attempting more field goals per game.  Three-point field goal attempts are coming at the expense of two-point field goal attempts.

A high profile individual example is Stephen Curry, who has broken his own record for three-point field goals made several times in the past few seasons.  He has had tremendous individual and team success (2x NBA MVP, 3x NBA Champion) and was rewarded with a record-setting 5yr/$201M contract.

One team in particular that has particularly embraced this shift in ideology is the Houston Rockets.  2017-18 saw the Rockets win a league-best 65 games and their most prominent player, James Harden, was awarded the league's MVP award after making 265 three-point field goals in only 72 games played.

It is only natural then, to wonder if shooting more three-pointers is an effective strategy league-wide.  In order to evaluate this claim, I focused on the last four seasons, where we have seen a surge in three-point field goal attempts.  Each team was given an additional feature indicating whether or not three-point field goal attempts were above or below median for the team in that season.

A two-sample t-test allows us to conclude that there is a statistically significant difference in mean winning percentage for teams that launch an above median number of three-point field goal attempts as compared to those below the median.  Interestingly, however, these teams do not make a statistically significantly higher percentage of these three-point field goal attempts (Group Above Median: 35.6% vs. Group Below Median: 35.4%).

Fascinatingly, it does appear that teams gain an additional advantage when merely attempting three-pointers at a higher rate.  Teams that shoot an above median number of three-pointers convert two-point field goals at a statistically significantly higher rate.

Further analysis would be necessary to validate this claim, but intuitively, it may be the case that teams that attempt three-pointers at a higher rate, while not necessarily converting three-point attempts at a higher rate, draw defenses farther from the basket.  It's possible that this "spacing out" of the defense contributes to higher-percentage two-point field goal attempts.

Additional hypothesis testing allows us to either verify or debunk additional claims:

Claim: Teams that shoot more three-pointers, attack the basket less, and shoot less free throws as a result

- False (p = 0.59) 22.8 FTA/gm vs. 22.7 FTA/gm

Claim: Teams that shoot more three-pointers score more points

- True (p = 0.003) 104.8 ppg vs. 102.5 ppg

Claim: As players age, they become less athletic and rely more heavily on three-point shooting

- False (p = 0.4286)

Claim: Teams that shoot more three-pointers have more "long rebounds" resulting in more offensive rebounds

- False (p = .8967) 10.2 ORB/gm vs. 10.4 ORB/gm

Further analysis in this space could involve player level analysis (namely group level interaction).  A comprehensive evaluation of "tanking" in the NBA also has the potential to yield interesting results.

About Author

Thomas Deegan

Graduate Student in Computer Science at The University of Chicago
View all posts by Thomas Deegan >

Leave a Comment

No comments found.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 airbnb Alex Baransky alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus API Application artist aws beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep Bundles California Cancer Research capstone Career Career Day citibike clustering Coding Course Demo Course Report D3.js data Data Analyst data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization Deep Learning Demo Day Discount dplyr employer networking feature engineering Finance Financial Data Science Flask gbm Get Hired ggplot2 googleVis Hadoop higgs boson Hiring hiring partner events Hiring Partners Industry Experts Instructor Blog Instructor Interview Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter lasso regression Lead Data Scienctist Lead Data Scientist leaflet linear regression Logistic Regression machine learning Maps matplotlib Medical Research Meet the team meetup Networking neural network Neural networks New Courses nlp NYC NYC Data Science nyc data science academy NYC Open Data NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time Portfolio Development prediction Prework Programming PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn Selenium sentiment analysis Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau team TensorFlow Testimonial tf-idf Top Data Science Bootcamp twitter visualization web scraping Weekend Course What to expect word cloud word2vec XGBoost yelp