24 views

Uploaded by 423894723984732984723

Run of every possible fantasy football draft order to find the best one.

save

You are on page 1of 4

**In a fantasy football draft, you pick 16 players. Generally, this 16 player mix is composed of 1-2 quarterbacks,
**

4-5 running backs, 4-5 wide receivers, 1-2 tight ends, 1-2 defenses, and a kicker. Last year I was inspired by my

fantasy draft to answer a beguiling question – what is the ideal order to pick the different positions to

maximize outcomes, year-to-year? Put another way: should I pick a QB first, then an RB, then a WR, then a

second RB, etc.? Or should I pick an RB first, then a WR, then a QB, then another RB, etc. What is the absolute

best strategy to ensure you get the most value out of a fantasy draft, year-to-year?

The question seemed like it should yield pretty easily to a moderate amount of analysis. However, as I soon

discovered, the answer was surprisingly difficult. There are a number of factors that come into play which

make this question difficult to answer.

Consider the dimensions you are trying to maximize simultaneously. First, you do not actually know the

performance of any player pre-hoc; hence you are always using some proxy of their skill to set your

preference. That means you’ve got to account for how well your ranking scheme accords with eventual

performance. If your scheme tracks better with certain positions than others, it no longer becomes a

straightforward game of picking the positions with the best outcomes. Rather it’s now a mix of the players with

the best outcomes that you can reliably predict.

Second, your best pick isn’t always the best player available to you at any moment. In the language of game

theory, you are trying to “minimax.” For instance, at a given moment your current pick might be between a

running back set to get 250 points this season vs. a tight end likely to get 200 points this season. In a world

where you only have to make a single decision, your choice is clear – you want the running back in this pick

because he is worth more points to you. Yet, your next pick may be between a running back likely to get 225

points this season vs. a tight end likely to get 100 points. Over two picks, your best bet is to get the tight end

first and the running back second (200 + 225 = 425) vs. the other way around (250 + 100 = 350). Even though

the tight end looks like the worst choice in the first moment, it is ultimately your best pick overall, because

your next available tight end is worth so much less and your next available running back is still worth a decent

amount of points.

A final complication that muddies the water is that there are certain default strategies fantasy players cling to

that make certain positions available longer (or shorter) than might be expected. For instance, some common

wisdom holds that you can hold off on picking a QB till your later picks. Given that positions will be available

depending on the combined wisdom of the crowd, who you pick at any given moment doesn’t always have to

do with what strict maximization of points would advise.

Given that there are so many dimensions to maximize at the same time, how could you possibly arrive at the

best order of positions to pick?

THE SOLUTION

The answer was to consider all of the possibilities. Truly – all of them – every possible unique permutation of

positions you could entertain. To do that, I started by writing a script that spit out every unique permutation of

a default team of offensive players: two quarterbacks, four running backs, five wide receivers, and two tight

ends. For those who remember middle school math, you know that the number of unique permutations in

such a mixed set is equal to:

That means there are 540,540 unique ways to rearrange a set of two QBs, four RBs, five WRs, and two TEs.

Now, I would have loved to also include two defenses and a kicker to round out a full team. However, with

those included, we’re at 908,107,200 unique permutations – a number that is a bit big to run analyses on

(more to come). So, for the moment, we have to assume that the results of my research are contingent on

your last picks being two defenses and a kicker (not an unreasonable or unusual scenario).

With these 540,540 permutations in hand, the next step was to simulate the outcome of drafts for the

different permutations. I play in a ten franchise league where the draft order is assigned randomly shortly

before the draft occurs. For each franchise, the picks in the draft follow a “snaking” scheme proceeding from

franchise 1 to 10, and then back from franchise 10 to 1. That means that franchise 1 will pick 1st, then 20th,

21st, and so on. Franchise 10 will pick 10th, 11th, 30th, 31st, etc. (see chart below). When simulating every

permutation of positions, we need to consider what would have happened had each of the ten franchises tried

the different strategies.

16 Picks

Franchises

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

1

1

20

21

40

41

60

61

80

81

100

101

120

121

140

141

160

2

2

19

22

39

42

59

62

79

82

99

102

119

122

139

142

159

3

3

18

23

38

43

58

63

78

83

98

103

118

123

138

143

158

4

4

17

24

37

44

57

64

77

84

97

104

117

124

137

144

157

5

5

16

25

36

45

56

65

76

85

96

105

116

125

136

145

156

6

6

15

26

35

46

55

66

75

86

95

106

115

126

135

146

155

7

7

14

27

34

47

54

67

74

87

94

107

114

127

134

147

154

8

8

13

28

33

48

53

68

73

88

93

108

113

128

133

148

153

9

9

12

29

32

49

52

69

72

89

92

109

112

129

132

149

152

10

10

11

30

31

50

51

70

71

90

91

110

111

130

131

150

151

In addition to knowing the timing of different picks by each franchise, you need two more components to

simulate a draft. First, you need a ranking scheme that tells you the order of players a franchise would prefer

at any given moment in the draft. Then you need a reasonable approximation of which players will be

available at any given point in the draft. Combining these two elements, you simply work down the list of

players each franchise wants, until you find the first player who should be available at that given moment for

that given franchise.

The ranking part is quite easy. For instance, you can use last year’s fantasy performance to order your

preference for this year’s players. The second component is relatively easy as well, because we have access to

“average draft position” (ADP) numbers for each player. A player’s ADP tells us when, on average, a player was

picked in thousands of previous drafts that year. For instance, an ADP of 7.03 means that a player was taken

around the 7th pick, on average, across all drafts that occurred. Using ADP, we know if a player is generally still

around, say, by the time franchise #1 is making their third pick (which is pick 21 overall – see the chart above).

Every player with an ADP lower than 21 is assumedly already gone at that time. To find out who player #1 will

likely get in their third pick, all we have to do is find the next preferred player whose ADP is higher than 21.

RUNNING THE NUMBERS

I wrote a script that accomplishes precisely what I just outlined. The script starts by grabbing a permutation

from the list of 540,540. It runs through each franchise, from 1 to 10, using the snaking scheme I just outlined.

As it runs through a franchise’s picks it finds the best player available for the currently desired position. In my

scheme, I actually ranked the preference of players by their ADP. (NOTE: I used ADP both for when a player

would be available, and as my ranking scheme of choice. I tried using past year’s fantasy points to set my

preference, but it turns out that past year’s performance did worse than current year’s ADP. There is nothing

illogical about this method; in fact ADP is a popular choice for picking players among fantasy football fans).

Afterward, when I had all 10 franchises’ outcomes, I took the average of the 10 outcomes to set an overall

score for each permutation. This average score is the general perspective on how that permutation did.

With this script written, all I needed was to run every permutation… right? Well, it turns out that I encountered

a problem. Even after much tweaking and rewriting of my script, I only managed to get each run of a

permutation down to .11 seconds. That sounds pretty fast (and it is quite fast, given the complexities of the

calculations), but when you extrapolate 540,540 runs across .11 seconds per run, you realize that it will take 16

hours and 31 minutes for the script to go through all of them. I was sure there is no way that I could let a

script run for 16 and half hours and it would avoid screwing up in some way. Also, I wanted to run six years of

data (2009-2014), and that means six times 16.5 hours, for a total of 4 days and 3 hours.

Try as I might, I could neither get the script to run any faster, nor could I come up with some mathematically

elegant application that could resolve away my problem. So I did the next best thing – I took a sample. In fact,

I set the script to take every 67th permutation, for a total of 8,008 permutations. That still takes about 15

minutes to run for each year of data, but at least I was down to a timescale I could stomach.

WHAT DID I FIND?

With this sampling method in hand, I ran through the same 8,008 permutations for six years of data from

2009-2014. My goal was to find the permutations in the sample that did the best across all six years. And I

found some decent ones! In fact there is noticeable consistency to the permutations that do the best across

years. None of them are perfect every year. Still, there is one I like. In fact, I found one of the top

permutations that was never less than 91% of the best permutations in any given year, and averaged 93% of

the best permutations across the six years.

Would you like to know what the best permutation was? I BET YOU WOULD! No way I did all of this work just

to share it on the internet.

**Grab one of the 540,540
**

permuations of 13 positions

(QB, RB, RB, WR ...)

See which players each of the 10

franchises can likely get when

they pick postions in that order

Sum together the fantasy

football points each franchise

would get from those players

Average the fantasy football

points the 10 franchises

achieved for that permutation

Repeat the process to see which

permutation results in the

highest average points

- MB0048 Opration ResearchUploaded byNeelam Aswal
- Flex BoneUploaded byJerad Bixler
- 3-4 Mighty Mites Youth Football Coaches PlaybookUploaded byJoby Turner
- drills and fundamentals for quarterbacks and receiversUploaded byMichael Schearer
- off prezUploaded byThomas Smith
- lesson 2Uploaded byShisi Shishi
- Quantitative TechniqueUploaded byBlessing Ricalde
- Maximin, Leximin, And the Protective Criterion. Characterizations and Comparisons (S. Barbara, M. Jackson)Uploaded byAlizada Huseynov
- AssignmentUploaded bySri Harsha Challa
- Game TheoryUploaded byNayan CastingDirector
- glossryUploaded byapi-264278166
- Drill ManualUploaded bykc016
- pfe football purvisUploaded byapi-239797851
- QB and WR Fundamentals 061Uploaded byMike
- Games TheoryUploaded byAna-Maria Babanica
- HOME APPLIANCE IDENTIFICATION FOR NILM SYSTEMS BASED ON DEEP NEURAL NETWORKSUploaded byAdam Hansen
- Using Game Theory to Analyze Wireless Ad HocUploaded byZiad Qais
- A Penny Saved is a Penny EarnedUploaded byruchipatel20
- Aaron Johnson, Ben Mader, Connor Roach AnthologyUploaded bybenmader03
- Best Note for Test IIUploaded byBruke B
- WMCPUploaded bymeysamhemmati
- B Daftar PustakaUploaded byMiftah Ridwan M
- 081370030Uploaded byDusto Chele
- MC17_Fax_T.xlsxUploaded bysivaji_ss
- Campbell Dudek Smith 1970Uploaded byrichardvas12
- Alt R., Vignes J.-10th GAMM - IMACS International Symposium on Scientific Computing, Computer Arithmetic, And Validated Numerics (2002)Uploaded byhp_blacklight7402
- preliminary exam - 1st sem, 2009-2010.docUploaded byEllen Dela Cruz
- REDUCTION THE DIMENSIONAL DEPENDENCE USING RANK-BASED SIMILARITY SEARCHUploaded byIJASRET
- AoPS Community 9Uploaded bysayan paul
- Error Control CodingUploaded byRina Asmorowati