ggplot(
df |>
mutate(season_date = as.Date(paste0(substr(season, 1, 4), "-10-01"))) |>
group_by(season_date) |>
summarise(mean_fga_3p = mean(fga_3p, na.rm = TRUE), .groups = "drop"),
aes(x = season_date, y = mean_fga_3p)
) +
geom_line() +
geom_point() +
labs(
title = "Average 3-Point Attempt Rate Over Time",
x = "Season",
y = "Average 3PT FGA"
) +
theme_classic()Assessing Three-Point Shooting in the NBA
Introduction
Audience: This analysis is intended for NBA roster decision makers such as coaches, analysts, general manager and president of basketball operations.
Context: Around the 2015-2016 season, the National Basketball Association (NBA) began adapting to a new style of basketball started by the Golden State Warriors. Their system emphasized shooting more three-point shots efficiently. A few years later, the three-point shot became so predominant that traditional roles such as low-post centers started becoming extinct because in order to succeed, almost everyone must be capable of shooting three-pointers. See the line graph below showing how the volume of three-point shot attempts has increased from the 2018-19 season to the 2024-25 season (not including pandemic affected seasons). There is a very clear upward trend, meaning offenses are taking more of their shot attempts behind the three-point line. This drastic change impacts roster construction and coaching strategy. So when it comes to identifying strong three-point shooters to maximize offensive efficiency, coaches and front office executives need to understand what makes a player an effective three-point shooter.
Main Objective: The goal of this analysis is to understand which player characteristics are most strongly associated with higher three-point shooting efficiency so front-office decision makers can better evaluate and acquire effective three-point shooters.
ggplot(df, aes(x = fg_3p)) +
geom_histogram(bins = 30, fill = "gray", color = "black", alpha = 0.7) +
labs(
title = "Distribution of 3-Point Percentage",
x = "3-Point Percentage",
y = "Count"
) +
theme_classic()Warning: Removed 58 rows containing non-finite outside the scale range
(`stat_bin()`).
The distribution of three-point percentage is centered roughly around 30%-40% with most players falling in this range. Most players cluster in this range while elite and poor three-point shooter are less common. These results show NBA decision makers should at least attempt to identify players who fall in the 30%-40% three-point shooting range and if possible, target those accurate three-point shooters depending on who that player is and their fit.
Identifying Variables that Potentially Impact Three-Point Shooting
As complicated as NBA offenses are nowadays with heavy emphasis on three-point shooting, the best way to narrow down which factors are important in determining three-point shooters are these three: corner three-point shooting accuracy, the volume of attempts from three-point range, and the player’s age. Corner three-point shots are considered the most efficient three-point shot along the three-point arc (even without the backboard to provide aim context) because it is the shortest distance from the player to the basket. Even though corner 3pt% and overall 3pt% are mechanically related, analyzing them together is still valuable since the relationship is not one-to-one in theory. Some players shoot well from the corners, but are less effective from other spots or off-the-dribble threes. So strong corner shooting does not automatically imply equally strong three-point shooting overall.
As shown in the previous line graph, a drastic increase in three-point shot attempts throughout the entire season, do players who take more three-point attempts improve three-point shooting overall. With age, does having more experience playing the NBA mean players are better three-point shooters since they have had time to adapt to the new playstyle or are younger player who are aware of this new trend who most likely practiced three-point shooting before entering the league are better three-point shooters?
Creating a Regression Model to Assess What Impacts Three-Point Shooting
Assumptions: When creating this regression model, players that played less than 300 minutes were removed from the dataset. This is standard data cleaning in NBA analytics, especially shooting analysis to remove end of the bench players who sparingly play and can heavily skew the results especially they may take 1-2 shots a game or that be their total amount through an entire season. The other is removing players who have been traded during the season since these players would be counted more than once. These assumptions reduce noise and duplicate counting, but may also exclude niche shooters off the bench or players whose role changed during the season. To mitigate this risk, future analysis could test whether these results are similar under different minutes thresholds.
# Creating the linear model
lm_model <- lm(fg_3p ~ x3p_percent_cor_3 + fga_3p + age, data = df)
summary(lm_model)
Call:
lm(formula = fg_3p ~ x3p_percent_cor_3 + fga_3p + age, data = df)
Residuals:
Min 1Q Median 3Q Max
-0.24556 -0.02667 0.00184 0.03010 0.49606
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.1538758 0.0081973 18.772 <2e-16 ***
x3p_percent_cor_3 0.3300931 0.0097781 33.758 <2e-16 ***
fga_3p 0.1099528 0.0069613 15.795 <2e-16 ***
age 0.0007172 0.0002937 2.442 0.0147 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.05669 on 2094 degrees of freedom
(127 observations deleted due to missingness)
Multiple R-squared: 0.4821, Adjusted R-squared: 0.4813
F-statistic: 649.7 on 3 and 2094 DF, p-value: < 2.2e-16
Overall, the model explains a moderate proportion of the variation in three-point percentage (R^2 approximately 0.48), indicating a reasonably strong association between these variables and three-point shooting. The model shows that all three factors are positively associated with overall three-point percentage and are statistically significant. Corner 3PT% (x3p_percent_cor_3) has the largest coefficient (0.330) meaning it is the strongest predictor. Players who are more accurate from the corner tend to have much higher overall three-point percentages. Three-point attempt rate (fga_3p) is also strongly positive (0.110), meaning that players who take a larger proportion of their shots from three are associated with higher overall three-point percentages, which may reflect role specialization. Age has a small, but positive effect (0.0007), meaning that players with more experience tend to have slightly higher three-point percentages.
# Residual vs Fitted
plot(lm_model, which = 1)The residuals are mostly centered around zero, suggesting an overall good fit. However, there is a slight curved pattern (mild nonlinearity) and a few outliers at higher fitted values. These don’t seem to be severe, so the model is reasonably reliable.
Conclusion and Recommendations
Conclusion: Overall, three-point shooting efficiency is most strongly associated with corner three-point shooting efficiency and volume of three-point shooting (shooting role) with experience playing a smaller supporting role.
Recommendation: From a roster construction perspective, general managers should prioritize signing and trading players that are strong corner three-point shooters and take a high volume of threes overall to maximize offensive success in today’s NBA. It is also slightly more helpful to sign experienced players, but there is still value in investing in young players since nowadays they too can shoot well from the three. From a coach’s perspective, whether it is utilizing their star player or the supporting cast, to ensure efficient three-point shooting from their team, prioritize creating corner threes and high-quality three-point opportunities when possible.