We ‘Moneyballed’ an NBA2K Simulation

Because we had nothing better to do.

Ben Everett
Analytics Vidhya
8 min readJul 8, 2020

--

NBA Champion John Collins

Preface

In the midst of the global pandemic, I’ve been feeding my basketball addiction by participating in an NBA 2K MyLeague with some friends. Basically what happens is we all draft a team in 2K, simulate through the season and the playoffs and see who wins. Sometimes we jump into the actual games and watch them because we’re so starved for live sports. Nevertheless, it’s been a ton of fun, and I found myself getting very competitive about my team.

I teamed up with two friends to create a “front office” feel throughout this whole process. We chose the Atlanta Hawks. This is our story.

Part I: Right Place, Right Time

Going into the first draft, we didn’t have much of a strategy. We were randomly given the 23rd pick in the draft, not a great spot. We listed out the best players in the NBA by 2K rating and decided we would likely be selecting one of Chris Paul, Kemba Walker or Jayson Tatum to build our team around based on draft position. Our pick came around and we ended up going CP3. He’s a veteran leader, he can create for others, and he can make shots off the dribble.

Since it was a snake draft, we immediately shifted our attention to pairing CP with a capable running mate. We knew this was probably the most important pick to nail. We listed out a few bigs that would fit well: Kristaps Porzingis, Zion Williamson, John Collins. Two very capable P&R partners, one deadly P&P partner. Porzingis and Willamson were scooped off the board by one team who was eyeing a versatile front court. We were lucky to nab Collins a few picks later. We breathed a sigh of relief knowing we had our building blocks.

We decided to surround this P&R combo with a lot of shooting — nay, as much shooting as possible.

The Swanson strategy

We got Seth Curry and Bojan Bogdanovic to fill out our wing, before taking Tristan Thompson (basically our only non-shooter) to start alongside Collins down low. For our bench, we went shooting as well, taking Reggie Jackson, Doug McDermott, and Ersan Ilyasova.

Final roster for season 1

We were happy with our team, but didn’t expect much. We started out 26th in the initial power rankings, so we just wanted to make the playoffs. In a weak Eastern Conference, we ended up with the 3-seed.

The playoffs were wildly entertaining. After taking care of Philly in round one, we faced off against a stacked Bucks roster that featured Kawhi Leonard, Kevin Love and Derrick Rose. John Collins made play after play, scooping up offensive rebounds and seemingly always being in the right position to make a play. Hawks in 7.

In the ECF, we somehow managed to have home-court advantage since the Kevin Durant-led, 8th-seeded Orlando Magic had bested its first two playoff opponents. Hawks in 6.

Finals up next. MVP Luka Doncic and the Dallas Mavericks. Series tied 3–3. Dallas has home-court. Doesn’t matter. Reggie Jackson comes up huge in the final game of the season and the Hawks hoist Larry O’B.

Part II: Lesson Learned

Coming off the high of improbably winning the championship with Chris Paul as our best player, we now faced a new challenge: an All-Time league. Through extensive prep work (read: none at all) we concluded that our strategy worked and we should do something similar. So we did.

We took Hakeem Olajuwon with our first pick, and surrounded him with an ass-ton of shooting. CP returned as our point guard, flanked by Pete Maravich, Carmelo Anthony as a small-ball four, with sharpshooting Hawks legend Lou Hudson rounding out our starting five.

Final roster for season 2

We sucked.

Worst record in the league by far. Considering this league only had 16 user-led teams (the last one had 30), we still made the playoffs. We decided to make a last-minute rotational adjustment prior to our first-round matchup with the Michael Jordan-Luka Doncic-Anthony Davis led Orlando Magic. We hypothesized that maybe playing small in an All-Time league was a bad choice. With so many great bigs in the history of the league, poor Carmelo Anthony was probably getting roasted on the block, and 6'5 Lou Hudson was likely too small to guard the game’s greatest small forwards.

We moved Chris Bosh to the starting lineup and slid Melo to the 3. The result: we took the eventual champion Magic to seven games.

What if we had Bosh starting the entire season? Would we not have been so bad? Maybe we would’ve been a top 4 seed.

Part III: Billy Beane Time

Motivated by our absolutely horrid showing in the All-Time league, and knowing that another All-Time league was just around the corner, we dove into some numbers.

Our thinking was that NBA2K is purely numbers, so if we can find out which numbers are most important, we can exploit them and win.

Data collection: I asked my friend that was running the league to send me the entire rosters of each of the MyLeague teams, along with the final standings and playoff results. I wrote an R script to scrape 2KRatings.com and get a list of attributes for each player on each roster.

Exploratory data analysis: I wanted to see what each team was good at, attributes-wise. So I computed the average rating for the entire list of attributes. These include general ones like Outside Scoring, Inside Scoring, Rebounding, Perimeter Defense, Interior Defense and more specific ones like Close Shot, Three Point Shot, Pass IQ, and Speed With Ball.

Correlations: Through a series of linear regressions, I determined that the two most statistically significant predictors of wins in this particular iteration of the league were rebounding and close shot.

Data visualization:

Rebounding is clearly an important part of winning in an all-time 2K league

The circled teams are the four teams that made the conference finals. Coincidence? I think not. (Note the sorry Atlanta Hawks in the bottom left)

If rebounding was so important, how would we draft to capitalize on that?

I divided the player pool into two groups: 90th percentile players (based on overall rating) and everyone else. I explored the attributes of these two groups, and determined the biggest drop-offs between the best players in the All-Time pool and everyone else.

The best players All-Time are great rebounders

We concluded that the best players were significantly better at rebounding than everyone else. Our strategy was clear: prioritize rebounding both early and often.

Part IV: Can He Get on Base?

Alright so now we have our big board: a ranking of the players in the All-Time player pool sorted by a combination of overall rating and rebounding while also throwing in close shot for fun. But we decided don’t have to follow it religiously. For instance, if we have a top 3 pick, we have to take either Jordan, LeBron, or Magic.

It’s draft time.

We get the 5th pick. The first four picks go chalk: the big 3 plus the other 99 overall, Kareem. That means we are guaranteed one of the two best rebounders in the game. We go Wilt over Bill Russell because of his offense.

In the second round, we know we want to go power forward. Ideally, we get Tim Duncan, but he gets taken. We end up with Kevin Garnett. Not a bad start.

Now we deviate a little bit. We really need a primary initiator. Someone who can create some offense for us. Through the previous two leagues we learned something through simple observation: Luka is an absolute cheat code. The dude made the Finals both times. We snag him in round 3.

Picks four and five. We need a point guard and a small forward. There are a lot of good options, but my front office reminds me of an important question to consider: C̶a̶n̶ ̶h̶e̶ ̶g̶e̶t̶ ̶o̶n̶ ̶b̶a̶s̶e̶?̶ Can he rebound? We pick up Bob Cousy and Rick Barry — two great rebounders for their position.

Now time to fill out our bench. You better believe we went big first. We took elite rebounder Elvin Hayes in the sixth round before rounding out our front court rotation with Dominique Wilkins and Bob Lanier.

We deviate with our final two picks because we figured we could use some ball-handling and shooting off the bench: Baron Davis and Drazen Petrovic are the final two picks for your Atlanta Hawks.

Final roster for season 3

Draft felt good, but did we achieve our goal? Let’s consult the chart:

The Hawks can rebound the damn ball

Part V: Redemption SZN

Moment of truth time.

We simulate through November: 19–0.

We simulate through December: 33–1.

Is this real? Did our strategy really work? Is it that simple?

We fall back to earth a little bit and lose a couple more games before the All-Star break, but our entire starting lineup made the All-Star team.

We finish the regular season 72–10. Best record in the league, but only one game ahead of the Boston Celtics for 1st place in the East. Luka won MVP (told you he was a cheat code).

We go 8–1 in the first two rounds to set up a showdown between two 70-win teams in the ECF. Hawks in 5.

But now comes the real test. OKC made it out of the West, and they are the second best rebounding team in the league. Additionally, their GM decides to start Scottie Pippen at the 2 and guard Luka, which turns out to be our death knell.

We drop game one at home and never recover. OKC wins in 6, and we fall short of winning 2 rings in 3 seasons. Pippen smothered our main source of offense, and they had the rebounding (Karl Malone and Alonzo Mourning, plus Big O at the point) to match up with ours.

In the end, basketball strategy won out over statistics. And the worst part is, we ended up with the most total wins, so if I ran the numbers again, I would likely get the same answer.

Such is life.

#LetsGoHawks

P.S. If you’re interested in joining one of these leagues, follow Kaan Erel @iKaanic on Twitter.

--

--