An ideal Knicks offseason via statistical projection

reiferstatproj2.png

The New York Knicks are entering yet another pivotal offseason and free agency period. 

There are a myriad of decisions to be made by the front office: which free agents to add, which current team options to accept or decline (which they did today), and how many minutes to play each player per game once the season actually tips off. Luckily for them, they have a lot of flexibility — they have control over how they use their salary cap, roster spots, and minutes allocations throughout the season. 

What do the numbers say they should do? Basketball isn’t played on a spreadsheet or in mathematical models — but spreadsheets and models can still be hugely valuable tools to help us make better basketball decisions.

Our goal in this study was to optimize the Knicks’ decisions using mathematical modeling (Integer Linear Programming, to be specific). Can we maximize team performance, based on multiple advanced player impact metrics, taking into account the real-world constraints facing the team? 

For our model, we utilized lots of data, including:

  • 2020-2021 Salaries

    • Current Knicks salaries (via Spotrac)

      • Current Knicks team options/salaries

    • Current NBA salary cap (via Bleacher Report)

    • Projected free agent salaries (via ESPN)

  • 2020-2021 Player Impact Metrics 

    • Player Impact Plus-Minus (PIPM)

    • Real Plus-Minus (RPM)

    • Box Plus-Minus (BPM)

    • Robust Algorithm using Player Tracking and On/Off Ratings (RAPTOR)

      • (Nate Silver really knows how to stretch an acronym)

None of these catch-all metrics are perfect by any means, but they all take differing paths toward quantifying NBA player impact. While looking at one specific metric would be highly misleading, pulling in insights across them to look for consistencies and inconsistencies could be deeply insightful, as we’ll touch on in a bit.

There’s a well-known saying in statistics — “all models are wrong, but some are useful.” In order to make this work with the tools at our disposal, we had to make assumptions for our model:

  • Player-by-player impact will be the same this season as it was last season

    • This, of course, won’t be true, but for the purposes of this study, the best predictor of next year performance is previous year performance!

  • Projected free agent salaries will realize once they are signed in real life

    • Bobby Marks’ projected free agent salaries are just that — projected. Since we don’t know what the true market value for these players will be, we had to roll with the predictions here.

  • Player performance does not decrease if they play more minutes

    • When building our optimal lineups, we assumed performance at the first minute would be identical to performance at the 35th (though we capped each player’s minutes at 36 per game).

  • Free agents we choose to sign will agree to sign

    • As Knicks fans know as well as anyone, free agency doesn’t just mean you pick a player and a salary and they then become a member of your team. However, considering we’re really looking at “optimal” scenarios here, combined with the fact that none of this offseason’s free agents are blockbuster stars, we thought this was fair to run with.

  • The Knicks won’t make any trades

    • Trades would add a whole other level of complexity — but now that Chris Paul has already been dealt, there are thankfully fewer potential game-breakers here. We can assure you, though — no model would optimize toward trading for Russell Westbrook.

  • Young prospects will play at least 15 minutes per game for development

    • The Knicks’ youngsters — how can we say this politely — don’t generally do so hot in the advanced impact metrics. We assumed New York would devote at least some developmental minutes to the following players:

      • RJ Barrett

      • Mitchell Robinson

      • Frank Ntilikina

      • Dennis Smith Jr.

      • Kevin Knox

      • The impending 2020 draft pick (who, since the time this was written, we now know to be Obi Toppin)

Let’s get to the fun part! We built four separate models in Python Gurobi, allowing many free variables, including whether or not a specific player was on the roster (including team options and a pool of 27 available free agents) and how many minutes each rostered player should play in a game. The objective of each model: across all of the minutes played per game, maximize the sum of that impact metric times the number of minutes the respective player played.

Of course, statistical models like these don’t have a deep understanding of reality like we do, and they’ll try to maximize that objective using all of the resources they’re given, regardless of real-life concerns. To keep things sane, we applied these constraints to the models:

  • Only 15 players can be on the roster (including the Knicks’ first draft pick, AKA Toppin)

  • Players can only play minutes if they are on the roster (sounds easier than it was)

  • Sum of all rostered salaries (including the draft pick) must fit under the salary cap

  • Total minutes per game must not exceed 240 (including the draft pick; this is just 48 minutes times five players)

  • Each player can play no more than 36 minutes per game

  • Seven players must be on the roster (contract guarantees)

  • Each position should play no more than its share of total minutes

    • We defined only three positions — guard, wing, and big. Guards play no more than ⅖ of the total minutes, wings ⅖, and bigs ⅕.

  • Young prospects, as previously outlined, must play at least 15 minutes per game

Alright, now we can welcome everyone who understandably scrolled through the fluff to get to the meat and potatoes. What were the results?

Our models yielded four different optimal teams, which we can view holistically and which the Knicks could take action upon by noting key similarities and differences across objectives:

 
reifer+1.jpg
 

We say this with the known risk of Knicks fans losing all confidence in impact metrics, so let’s just get it out of the way — PIPM loves Elfrid Payton.

How about a Langston Galloway reunion? The one time Knick diamond in the rough shot 40% from three last season on five attempts per game, and could be a great fit next to the Knicks’ many non-shooters (especially, in this scenario, Payton). He wouldn’t demand the ball — he’s happy just standing in the corner:

 

Watch "Screen Recording 2020-11-17 at 1.14.52 PM" on Streamable.

 

He’s also shown the ability to create a bit off ball, getting open in his favorite spots by setting screens and diving out:

 

Watch "Screen Recording 2020-11-17 at 1.16.07 PM" on Streamable.

 

Michael Kidd-Gilchrist is another interesting case here — PIPM wants to not only sign him to the roster, but give him 30 minutes per game. As you’ll see, though, he appears on none of the other three optimal teams. This is a perfect example of what we touched on earlier with regard to looking at one specific advanced metric vs. pulling in insights across them.

You also, of course, love to see Melo back in the Garden.

 
reifer+1.jpg
 

Some real differences here! DJ Augustin is an interesting free agent target for the Knicks, in some ways playing like (and costing like) a dollar-store version of Fred VanVleet. Reggie Jackson is RPM’s version of Michael Kidd-Gilchrist — most Knicks fans would likely balk at a potential deal here.

Christian Wood, as you’ll continue to see, is a developing theme across these models, and we’d argue he would be a nice fit with his age and offensive versatility.

He can beat good defenders for backdoor lobs:

 

Watch "Screen Recording 2020-11-17 at 1.25.50 PM" on Streamable.

 

Or pick-and-pop elite bigs for easy treys:

 

Watch "Screen Recording 2020-11-17 at 1.26.40 PM" on Streamable.

 

For a big man, it’s eye-popping how much he does here: runs off a screen, pump-fakes, drives out of the double, then splits two more defenders for the ferocious yam:

 

Watch "Screen Recording 2020-11-17 at 1.24.10 PM" on Streamable.

 

This is a guy who can play next to Mitch, simply hold down the rest of the big man minutes, or even (look away) supplant him if needed.

 
reifer+2.jpg
 

Apologies to the tanking stans among us, but this team looks… very good? A well-rounded starting lineup with shooting, playmaking, and defense, with a bench unit of some of the more developmental projects. 

Fred VanVleet, one of the most talked-about potential acquisitions, shows up here for the first time, but not the last. He’s a true offensive creator (he shot 41% on 3-pointers taken after 7-plus dribbles last season) but can also play a tertiary role (44% on catch-and-shoot threes). We already know about his championship-level defensive ability:

 

fvv defense good

 

Still young enough to gel with the Knicks’ core for at least a few years, it’s no wonder he’s many fans’ top free agent available.

Meanwhile, it’s another big appearance for a couple of former Knicks in Justin Holiday and Danilo Gallinari, both multi-tooled players that could help the team win without stunting the development of younger players.

 
reifer 2.png
 

The final team continues to fit into previous themes — Rondae Hollis-Jefferson is RAPTOR’s outlier, while FVV, Holiday, and Christian Wood remain advanced stats darlings. Not a contender by any means, but this team could make a playoff run while keeping future assets intact.

We can aggregate across the four models to see which players showed up the most and played the most minutes:

 
reifer 3.png
 

Even with the manual constraint of the Knicks’ youngsters playing at least 15 minutes a game each, four of the top five played players were drawn from the free agent pool. Considering the Knicks as a unit are coming off a 21-win season, this shouldn’t be all that shocking to see. With many rumblings about Tom Thibodeau wanting to push more of a win-now priority, it seems likely that there will be new faces coming in in an attempt to improve the roster.

Even so, can we say it’s now mathematically proven that Julius Randle should play zero minutes per game?

My partner in this study was Duncan Holmes (@StemmedE). The code we used is available here.

Derek Reifer

Data science guy forever looking to reconcile cold, hard analytics with a love of JR Smith contested step-backs. Ewing theory is a lie and the Porzingis trade was a good move.

https://twitter.com/d_reif
Previous
Previous

A real-time 2020 NBA Draft diary

Next
Next

Denouement: Reactions to the Knicks’ 2020 NBA Draft