Many collegiate basketball players seek careers in the NBA. Top prospects are expected to be drafted with earlier picks, in the top 15-20 positions. However, for these top prospects and the rest of the draft participants, how do they need to perform to get drafted higher?
A dataset from Basketball Reference will be an analyzed to understand how college players can get drafted higher into the NBA. This dataset spans from 2010 to 2018 and contains what players were drafted, at what pick and round, their age at the time of the draft, the college they went to, points per game, and much, much more.
library(readr)
library(tidyverse)
library(dplyr)
Draft_1 <- read_csv("C:/Users/Vorbej1/Desktop/School Stuff/Draft_1.csv", col_names = TRUE)
Draft_2 <- read_csv("C:/Users/Vorbej1/Desktop/School Stuff/Draft_2.csv", col_names = TRUE)
Draft_3 <- read_csv("C:/Users/Vorbej1/Desktop/School Stuff/Draft_3.csv", col_names = TRUE)
Draft_4 <- read_csv("C:/Users/Vorbej1/Desktop/School Stuff/Draft_4.csv", col_names = TRUE)
Draft_5 <- read_csv("C:/Users/Vorbej1/Desktop/School Stuff/Draft_5.csv", col_names = TRUE)
combined_draft_data = bind_rows(Draft_1, Draft_2, Draft_3, Draft_4, Draft_5)
head(combined_draft_data)
combined_draft_data <- combined_draft_data %>%
na.omit(PPG) %>%
rename(PPG = PTS, RPG = TRB, MPG = MP, APG = AST, SPG = STL, BPG = BLK)
First, the dataset is acquired from BasketballReference.com. This website tracks historical and current basketball statistics since the start of the NBA. It is regularly maintained and seen as the standard for NBA statistics.
The data had to be obtained through several CSV files, which were read into R and then unioned together. To start, a sample view of the dataset is shown to understand the variables needed for this analysis.
For the first part of the analysis, players that have no points per game averages need to be exluded. As these are average stats per game, the column headers also need to re-named to be representative of the data.
library(Zelig)
ppg_model <- zelig(Pk ~ PPG, model = 'poisson', data = combined_draft_data, cite = F)
PPG.range = min(combined_draft_data$PPG):max(combined_draft_data$PPG)
x.p <- setx(ppg_model, PPG = PPG.range)
ppg_sim <- sim(ppg_model, x=x.p)
ci.plot(ppg_sim)
When looking at the results of the model, players scoring close to 0 points can be drafted in the 1st round, but will be one of the last selections in the draft. However, every 5 points increase in a players points per game has a huge effect on their draft position
Going from ~0 to 5 PPG moves your position up by 15 places. A points per game average of 10 increases your potential spot to the 20th pick. If a player has a points per game average of 20 or more, they have a high likelihood of being a top 10 pick.
apg_model <- zelig(Pk ~ APG, model = 'poisson', data = combined_draft_data, cite = F)
APG.range = min(combined_draft_data$APG):max(combined_draft_data$APG)
x.a <- setx(apg_model, APG = APG.range)
apg_sim <- sim(apg_model, x = x.a)
ci.plot(apg_sim)
A higher assists per game average greatly increases your chance of being selected higher in the NBA draft. Going from just 0 to 2 assists per game will increase your draft position by ~15 spots. Starting at 2 APG, if a player increases their average by 2 assists per game, they wil be drafted about 5 spots higher.
bpg_model <- zelig(Pk ~ BPG, model = 'poisson', data = combined_draft_data, cite = F)
BPG.range = min(combined_draft_data$BPG):max(combined_draft_data$BPG)
x.b <- setx(bpg_model, BPG = BPG.range)
bpg_sim <- sim(bpg_model, x = x.b)
ci.plot(bpg_sim)
Blocks per game is another important statistic when measuring a basketball players capabilities. A higher number of blocks per game has a positive relationship with draft position; a higher number of blocks will place you higher in the draft. Averaging around 2 BPG has will likely land you around the top 15 draft spots. These results are interesting as mostly centers are the ones looking for high block per game averages. For any position, more blocks will result in a higher draft position.
Analyzing the plots reveals that higher statistical averages across all categories is equally important in getting drafted higher into the NBA. In order to be a top 10 pick in the NBA draft, player should look to average over 1.5 blocks per game, over 6 assists per game, and over 15 points per game.
Those looking to be selected as a top 5 prospect should look to average 20 or more points per game, 8 or more assists per game, or 2 or more blocks per game.
All positions see benefits from higher statistical averages in each category.