Best Ball Projector
Since the whole point of best ball league is to be able to draft without having to think about your team ever again, a best-ball projector is a bit of an oxymoron. However, I wanted to include it for a few reasons.
Most importantly, it's a great opportunity to learn some intermediate Python and Pandas concepts we don't cover in the other projects.
And it might be useful. Maybe you're in a best ball league that's coming down to the wire, or maybe you're in the offseason and want to study impacts of substituting between positions at the margin, a 3rd QB vs a 7th WR, say.
It also shows off the power of these simulations. Projecting an accurate range of best ball scores is easy using these correlated simulations, and almost impossible to do accurately any other way.
We start with the lineup from my one best ball team last year:
Drew Brees, Baker Mayfield, Malcolm Brown, Ezekiel Elliott, Nyheim Hines, Kareem Hunt, Marlan Mack, Devin Singletary, James White, Mike Evans, Marquise Goodwin, Mecole Hardman, Christian Kirk, Anthony Miller, DJ Moore, Curtis Samuel, George Kittle, Noah Fant, Denver D, Cincy D
Using that and the projected point simulations from the API, we'll write code that gives us (1) our projected points and (2) the probability each player is used in each spot.
Results and Analysis Outputs
One interesting thing about best ball rosters is the differences in quality of guys that are in play. For example, RB projections:
It's interesting that although Zeke clearly is the best, he's still ends up being RB1 only 50% of the time (see below).
We can also look everyone at once:
Though it'd be easy to extend our plotting work to the aggregate team level, I skipped it for now. Instead, after a bunch of Pandas work, the final numerical projection is:
mean 144.61 std 22.80 5% 108.40 25% 129.82 50% 143.93 75% 159.14 95% 183.49
The projections — while requiring simulations and some tricky coding — are admittedly not that exciting to look at.
Instead, what's more interesting is the projected lineups.
We can ask (and answer) questions like, how often will we use Zeke at RB1 vs one of the other guys? How often will Kittle be somewhere in our lineup? (Answers: 50%, 82% respectively)
We also make the table below, which sums things up nicely: