Picking Winners in Daily Fantasy Sports Using Integer Programming
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Submitted to INFORMS Journal on Optimization manuscript Authors are encouraged to submit new papers to INFORMS journals by means of a style file template, which includes the journal title. However, use of a template does not certify that the paper has been accepted for publication in the named journal. INFORMS journal templates are for the exclusive purpose of submitting to an INFORMS journal and should not be used to distribute the papers in print or online or to submit the papers to another publication. Picking Winners in Daily Fantasy Sports Using Integer Programming arXiv:submit/2550176 [stat.OT] 23 Jan 2019 David Scott Hunter Operations Research Center, Massachusetts Institute of Technology, Cambridge, MA 02139, dshunter@mit.edu Juan Pablo Vielma Department of Operations Research, Sloan School of Management, Massachusetts Institute of Technology, Cambridge, MA 02139, jvielma@mit.edu Tauhid Zaman Department of Operations Management, Sloan School of Management, Massachusetts Institute of Technology, Cambridge, MA 02139, zlisto@mit.edu We consider the problem of selecting a portfolio of entries of fixed cardinality for contests with top-heavy payoff structures, i.e. most of the winnings go to the top-ranked entries. This framework is general and can be used to model a variety of problems, such as movie studios selecting movies to produce, venture capital firms picking start-up companies to invest in, or individuals selecting lineups for daily fantasy sports contests, which is the example we focus on here. We model the portfolio selection task as a combinatorial optimization problem with a submodular objective function, which is given by the probability of at least one entry winning. We then show that this probability can be approximated using only pairwise marginal probabilities of the entries winning when there is a certain structure on their joint distribution. We consider a model where the entries are jointly Gaussian random variables and present a closed form approximation to the objective function. Building on this, we then consider a scenario where the entries are given by sums of constrained resources and present an integer programming formulation to construct the entries. Our formulation uses principles based on our theoretical analysis to construct entries: we maximize the expected score of an entry subject to a lower bound on its variance and an upper bound on its correlation with previously constructed entries. To demonstrate the effectiveness of our integer programming approach, we apply it to daily fantasy sports contests that have top-heavy payoff structures. We find that our approach performs well in practice. Using our integer programming approach, we are able to rank in the top-ten multiple times in hockey and baseball contests with thousands of competing entries. Our approach can easily be extended to other problems with constrained resources and a top-heavy payoff structure. Key words: combinatorial optimization, statistics, integer programming, sports analytics History: 1
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming 2 Article submitted to INFORMS Journal on Optimization; manuscript no. 1. Introduction Imagine one must select a portfolio of entries for a contest where all or nearly all of the winnings go to the top performing entry. Because of the top-heavy payoff structure, one natural strategy is to select the entries in such a way that maximizes the probability that at least one of them has exceptional performance and wins the contest. We refer to this as the picking winners problem. In Hunter and Zaman (2017) the picking winners problem is introduced, and this study illustrates how this framework can be used to model the challenge faced by a venture capital fund. In particular, a venture capital fund will invest in a portfolio of start up companies and due to the top-heavy return structure, if one of the companies becomes a huge success, the fund will earn a large return. The picking winners framework can be also be used to model a wide variety of other problems that have top-heavy payoff structure. For instance, pharmaceutical compa- nies want to select a set of drugs to invest research resources in such that the probability at least one of the drugs is a major success is maximized. For another example, consider a movie studio that has to select a set of movies to produce, and the movie studio achieves success if one of the movies is a blockbuster hit. This framework can also model daily fantasy sports contests where people enter lineups of players in a sport (such as hockey or baseball) into daily contests where the top scoring entry wins a huge amount of money. All of these examples require one to select a set of entries (drugs, start-up companies, movies, lineups of players) to maximize the probability that at least one of them has exceptional performance and wins. Many applications of the picking winners framework require one to select entries from a fixed set, such as start-up companies for venture capital funds. However, there are also scenarios where the set of entries is not provided in advance. Instead, the entries must be constructed from a set of constrained resources. One example of this is daily fantasy sports contests, where one must select players for a lineup, but the players must satisfy budget and position constraints imposed by the company running the contests. For instance, in hockey contests, a lineup can only have one goalie. In these types of situations one must develop a method to construct the entries in a manner that respects the constraints but still maximizes the probability of winning. To select the entries one requires some predictive model of how well the entries will perform. However, this information alone will not be sufficient to select a good set of entries. The goal is to maximize the probability that at least one entry wins. One may select entries that have a high probability of individually winning. However, if these entries have a high positive correlation, then the probability that at least one of them wins may not be as large as for a set of entries with slightly lower winning probabilities, but lower correlation so they cover more possible outcomes. Therefore, choosing a good set of entries would require information on their joint distribution in addition to their marginal probabilities of winning. Intuitively, a good set of entries will each have a high probability of winning, but also not be too positively correlated in order to diversify the set of entries. What one needs to do is understand the trade-off between the winning probability of the entries and their correlations in order to select a good set of entries.
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming Article submitted to INFORMS Journal on Optimization; manuscript no. 3 In Hunter and Zaman (2017) it was shown that the general picking winners problem is NP-hard. Nev- ertheless, it has a non-negative, non-decreasing, and submodular objective function, which implies that a greedy solution has strong performance guarantees. Naturally then, these results motivate using a greedy approach to solve the picking winners problem. However, Hunter and Zaman (2017) focuses on the sce- nario where at each iteration of the greedy approach one simply chooses the entry (for instance, a start-up company) from a particular ground set that maximizes the marginal gain in the objective function. In this study, we will focus on the situation where the entries must be constructed from constrained resources and cannot simply be chosen from a ground set. Our problem is closely related to the problem of maximizing a stochastic monotone submodular function with respect to a matroid constraint (Asadpour and Nazerzadeh 2015). However in our case the objective function is the probability of at least one entry winning, which many times lacks a closed form expression. Therefore, we cannot even evaluate the objective function for a set of entries, which will prevent us from directly applying the greedy approach. To overcome these challenges, we develop a greedy approach for constructing entries from constrained resources for top-heavy contests, where at each step in the greedy approach we solve an integer program- ming problem. Our approach is fairly general and can be applied to a variety of problems. To demonstrate the effectiveness of our approach, we use it to construct entries for daily fantasy sports competitions. We were able to perform exceptionally well in these contests across multiple sports. To provide more context for our results, we next present a brief overview of the structure of daily fantasy sports contests. 1.1. Daily Fantasy Sports Contests Daily fantasy sports have recently become a huge industry. For instance, DraftKings, the leading company in this area, reported $30 million in revenues and $304 million in entry fees in 2014 (Heitner 2015). While there is an ongoing legal debate as to whether or not daily fantasy sports contests are gambling (Board 2015, Easton and Newell, Getty et al. 2018), there is a strong element of skill required to continuously win contests as evidenced by the fact that the top-one percent of players pay 40 percent of the entry fees and gain 91 percent of the profits (Harwell 2015). This space is competitive, with many users employing advanced analytics to pick winning lineups. Several sites such as Rotogrinders have been created that solely focus on daily fantasy sports analytics (Rotogrinders 2015). Other sites such as Daily Fantasy Nerd even offer to provide optimized contest lineups for a fee (DailyFantasyNerd 2015). There are a variety of contests in daily fantasy sports with different payoff structures. Some contests distribute all the entry fees equally among all lineups that score above the median score of the contest. These are known as double-up or 50/50 contests. They are relatively easy to win, but do not pay out much. Other contests give a disproportionately high fraction of the entry fees to the top scoring lineups. We refer to these as top-heavy contests. Winning a top-heavy contest is much more difficult than winning a double- up or a 50/50 contest, but the payoff is also much greater. Typical entry fees range from $3 to $30, while
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming 4 Article submitted to INFORMS Journal on Optimization; manuscript no. the potential winnings range from thousands to a million dollars (DraftKings 2015). These contests occur nearly every day, providing multiple opportunities to test and evaluate different strategies. For these reasons, daily fantasy sports provide a great opportunity for us to test our approach to picking winners. The entry to a daily fantasy sports contest is called a lineup, and it consists of a set of players in the given sport. An added complication is the fact that there are constraints on the players used to build a lineup. A daily fantasy sports company sets a price (in virtual dollars) for each player in a sport. These prices vary day-to-day and are based upon past and predicted performance (Steinberg 2015). Lineups must then be constructed within a fixed budget. For instance, in DraftKings hockey contests, there is a $50,000 budget for each lineup. There are further constraints on the maximum number of each type of player allowed and the number of different teams represented in a lineup. Finding an optimal lineup is challenging because the performance of each player is unknown and there are hundreds of players to choose from. However, predictions for player points can be found on a host of sites such as Rotogrinders (Rotogrinders 2015) or Daily Fantasy Nerd (DailyFantasyNerd 2015) that are fairly accurate, and many fantasy sports players have a good sense about how players will perform. This suggests that the main challenge is not in predicting player performance, but in using predictions and other information to construct the lineups. There have been many previous studies on how mathematical optimization and analytical methods can be used to assist sporting organizations. For instance, Sharp et al. (2011) use integer programming to construct Cricket teams, Pantuso (2017) propose an optimization model to maximize the expected value of a Euro- pean football club, Özlü and Sokol (2016) employ integer programming to solve the problem of assigning and scheduling minor league scouts for Major League Baseball teams, and Sokol (2003) generate optimal baseball batting orders that are robust under uncertainty in skill measurement. Additionally, there have been many studies that have applied analytical methods to in consumer sporting competitions. For instance, mul- tiple studies have considered the problem of predicting the maximum number of winners in the National Collegiate Athletic Association (NCAA) March Madness college basketball tournament (Brown and Sokol 2010, Guestrin et al. 2005, Kaplan and Garstka 2001, Kvam and Sokol 2006). There has also been work that considers ranking NCAA Football teams (Kolbush and Sokol 2017). In addition to these studies, there has been previous research on the topic of season-long fantasy sports. For instance, in Becker and Sun (2016) the authors present a mixed integer program that optimizes draft selection and weekly lineup selection for fantasy football. Fry et al. (2007) present a dynamic programming approach for fantasy football draft selection. Bergman and Imbrogno (2017) use optimization tools for National Football League survivor fantasy pools. All of these studies illustrate that optimization can be a useful tool in fantasy sports. However, all of these studies focus on season-long fantasy contests, which do not necessarily coincide with the problem of picking winners in daily fantasy contests that we study in this work.
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming Article submitted to INFORMS Journal on Optimization; manuscript no. 5 In a recent study a stochastic integer programming approach is proposed to construct lineups for daily fantasy sports contests that maximizes the expected payout (Newell and Easton 2017). In this study, the author’s assume that each athlete’s fantasy points and independent. Using their approach they are able to maximize the probability of achieving a payout, but they do not find success in real DraftKings contests. We take a different approach to this problem, and with our approach we are able to win several DraftKings contests. Achieving this required real entries in the contests that generated winnings of up to thousands of dollars per entry (See Figure 1). To avoid any related ethical or conflict of interest issues, we donated all winnings generated during this study (around $15,000) to the Greater Boston Food Bank, which is a non-profit hunger-relief organization in eastern Massachusetts. 1.2. Our Contributions Integer programming is a natural tool to use to construct entries because of the different constraints. The challenge comes in understanding how to formulate the integer program to maximize the probability of winning. In this work we present a sequential integer programming approach that attempts to do this. We begin by finding a tractable approximation for the objective function (the probability of winning), and show that the error of this approximation is small when the underlying distribution of the entries satisfies certain natural properties. From this approximation we are able to extract a set of heuristic principles for constructing entries. First, the entries’ scores should have a large expected value and variance. This increases the marginal probability of an entry winning. Second, the entries should also have low correlation with each other to make sure they cover a large number of possible outcomes. These principles form the foundation of our integer programming approach that sequentially constructs entries with maximal mean subject to constraints on their variance and correlation with previously constructed lineups. We apply our approach to top-heavy hockey and baseball contests in DraftKings. The contests we focus on had thousands of entrants and top payouts of several thousand dollars. The entries that we construct with our integer programming approach are able to rank in the top ten in these contests multiple times, as shown in Figure 1. This is a non-trivial achievement given the large size of the contests. One may be concerned that our integer programming approach is a betting tool that constitutes cheating. However, daily fantasy sports have been shown to be games of skill (Getty et al. 2018), so the use of such tools is considered fair game and are routinely offered as a for-profit service (DailyFantasyNerd 2015, Rotogrinders 2015). Our hope is that by making our results and code here public, we can help to elevate the level of the players that compete by introducing them to advanced operations research and management science techniques, which they could then apply elsewhere. Nonetheless, as mentioned before, all winnings were donated to charity to avoid any conflict of interest issues. Previous studies (Kvam and Sokol 2004, Sokol 2004) have found that sports can be used as a valuable tool to teach students analytical tools. Our success in using integer programming in daily fantasy sports
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming 6 Article submitted to INFORMS Journal on Optimization; manuscript no. has also exposed a whole new audience to analytics and optimization. We have presented our results at the Sloan Sports Analytics Conference in 2016 and 2017 (Hunter et al. 2016, Zaman 2017b), giving a non- technical audience a tutorial on integer programming via daily fantasy sports. We have also presented our work in multiple analytics classes for undergraduate, graduate and MBA students at MIT and Harvard. Our optimization code is available on GitHub (Hunter 2016, Zaman 2017a). Daily fantasy sports have proved itself to be an excellent application to get new people interested in studying analytics and optimization. In particular, graduate students at MIT routinely present extensions of this work to other sports as part of their class projects. We strongly believe that a crucial aspect for the past and future success of this study as an educational tool to disseminate the effectiveness of operations research and analytics tools is its relative simplicity. Indeed, the models and tools are intuitive and interpretable for anyone with a basic background in optimization. Nonetheless, these tools provided a significant edge in an environment where highly technical machine learning tools are widely used by both experts and users that barely understand their principles. For this reason we have purposely avoided adding complexity for complexity’s sake, particularly when it does not provide a practical benefit. The remainder of the paper is structured as follows. In Section 2 we reconsider the picking winners prob- lem, and develop an algorithm to sequentially construct each entry using an integer program. We present an empirical analysis of hockey data and develop predictive models of player performance in Section 3 for use in our integer programming formulation. In Section 4 we specialize our integer programming formulation for daily fantasy sports contests, with a focus on hockey. We evaluate the performance of our approach in actual fantasy hockey contests in Section 5. We conclude in Section 6. All proofs, unless otherwise stated, are included in the appendix. 2. Problem Formulation m Using similar notation to Hunter and Zaman (2017), we consider a set of events E = {Ei }i=1 defined on a probability space (⌦, F , P), with sample space ⌦, -algebra F , and probability measure P. Using this notation, each event Ei corresponds to an entry i in the contest winning. The goal then is to select a subset S ✓ [m] = {1, . . . , m} of size k such that we maximize the probability that at least one item in S wins, S S which is given by P i2S Ei . For notational convenience, we denote U (S ) = P i2S Ei . Formally then, the picking winners problem is given by the following optimization problem max U (S ). (2.1) S✓[m],|S|=k Before continuing with our analysis, we first begin by reviewing some of the key results from Hunter and Zaman (2017) concerning the picking winners problem. For convenience, we reproduce the proofs of
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming Article submitted to INFORMS Journal on Optimization; manuscript no. 7 Figure 1 Screenshots of the performance of our top integer programming lineups in real DraftKings hockey contests with 200 linueps entered. these results in Section 7. For notation, we will let Sg be the greedy maximizer of U (S ) and let S ⇤ be the maximizer of U (S ). In general, solving the picking winners optimization problem can be difficult, as shown by the following result. Theorem 2.1 (Hunter and Zaman (2017)) Maximizing U (S ) is NP-hard even for discrete uniform distri- butions. Despite the computational complexity in maximizing U (S ), the objective function possesses some nice properties that we can use to obtain good solutions efficiently, which are given by the following result. Lemma 1 (Hunter and Zaman (2017)) The function U (S ) is non-negative, non-decreasing and submod- ular. From Theorem 2.1, we know that the picking winners problem given by (2.1) can be difficult. However, the submodular property from Lemma 1 allows us to find a good solution using a greedy approach where we choose the events one at a time to give the maximal increase in the objective function. For submodular functions we have guarantees on the sub-optimality of such greedy solutions, as the following classic result shows. Theorem 2.2 (Nemhauser et al. (1978)) Let U (S ) be a non-decreasing submodular function and let Sg be its greedy maximizer. Then U ( Sg ) 1 e 1. (2.2) U (S ⇤ )
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming 8 Article submitted to INFORMS Journal on Optimization; manuscript no. Theorem 2.2 provides a strong bound for the sub-optimality of a greedy solution to the picking winners problem. In practice, a greedy solution can often be found efficiently, which is important as time can be a limiting factor in many applications. For these reasons, we will continue by considering a greedy approach to the picking winners problem. Ideally, a greedy solution to the picking winners problem would also be an optimal solution. In the case of all the events Ei being independent, from Hunter and Zaman (2017) we know that a greedy solution is in fact optimal: Theorem 2.3 (Hunter and Zaman (2017)) For a set of independent events E = {E1 , . . . , Em }, let the k element greedy maximizer of U (S ) be Sg . Then Sg is an optimal solution to the picking winners problem (2.1). This result also suggests that when the events have low dependence, greedy solutions should perform well. In practice, the events will often have some dependency structure, and thus we will consider this case in more detail. 2.1. Dependent Events When the underlying events are dependent, solving the picking winners problem is especially difficult. In general, a greedy solution is not an optimal solution. Additionally, with an arbitrary dependency structure between the events it is often non-trivial to even evaluate the objective function U (S ). Because of this, in this section we provide a tractable approximation to the objective function when the events are dependent and characterize the quality of the approximation as a function of properties of the underlying distribution. We will see that when the events are not too dependent upon each other, our approximation will have low error. We start with an approximation for the objective function U (S ). The difficulty of optimizing this objec- tive function comes from the lack of independence in the events, which requires us to understand their entire joint distribution. Many times this distribution will not be available to us, or if it is, evaluating the required probability will be difficult. To obtain something more tractable, we define the following objective function, which only utilizes pairwise correlations: X 1 X ⇣ \ ⌘ U2 (S ) = P (Ei ) P Ei E j . (2.3) i2S 2 i,j2S,i6=j This objective function is obtained by expanding U (S ) using the inclusion-exclusion principle and then only keeping terms that involve the intersection of two or fewer events. The benefit of U2 (S ) is that it only requires us to know the probability of intersections of pairs of events, which is much easier to calculate than probabilities of higher order intersections. In order for this objective function to act as a good surrogate for
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming Article submitted to INFORMS Journal on Optimization; manuscript no. 9 U (S ), we must show that the difference U (S ) U2 (S ) is small. If we impose certain conditions on the joint density of the events, we can bound this difference. To do this we define a few new terms. T We assume we have chosen a subset S of the entries. Let q0 (S ) = P( i2S Eic ) be the probability that none of the entries in S win the contest. For 1 l k, let Sl be the set of all l-element subsets of S . For instance, if S = {a, b, c} then S1 = {{a} , {b} , {c}} and S2 = {{a, b} , {a, c} , {b, c}}. For an element ⇣ T T ⇣T ⌘⌘ T 2 Sl , let p0T = P i2T E i j2S/T E c j be the probability that all the entries in T but no other entries in S win the contest. We then have the following result regarding the difference between U (S ) and U2 (S ). Theorem 2.4 Let E be a set of events on a probability space and assume |E| = m. Assume there are constants 0 < p < 1 and c > 0 such that for any S ⇢ [m] with |S| = k < m, q0 (S ) = (1 p)k , kp < 1/2, and for any 1 l k and T 2 Sl , p0T cpl . Then 1 kp (kp)2 U (S ) kp 2 and 0 U (S ) U2 (S ) 20c(kp)3 . This result shows that the error of U2 (S ) is approximately (U (S))3 multiplied by a constant. We will generally be in a situation where the events are rare, so U (S) is small. Then the cubic term in the error is negligible compared to U (S). The error then depends mainly on the constant c, which is related to how correlated the events are. We now illustrate this with an example. Consider the case where k = 3, and assume the marginal probability of any single event occurring is 0.01. If the events are independent and identically distributed (i.i.d.), then q0 (S ) = (1 p)3 = (1 .01)3 , resulting in p = 0.01. The condition p0T cpl from the theorem is satisfied with c = 1. For this case, we have U (S ) = 0.029701 and U2 (S ) = 0.029700, resulting in an error of U (S ) U2 (S ) = 10 6 . From the theorem the error is upper bounded by 20c(kp)3 = 5.4 ⇥ 10 4 . Now consider the case where the three events are the same. This represents a situation of maximal cor- relation. We have q0 (S ) = (1 p)3 = (1 .01), resulting in p = 0.0033. To satisfy the condition in the theorem, we only need to consider the set T = S , since for all other subsets T we have p0T = 0. When T = S , the condition from the theorem gives 0.01 c(0.0033)3 . This is satisfied with c = 2.7 ⇥ 105 . For this case, we have U (S ) = 0.01 and U2 (S ) = 0, resulting in an error of U (S ) U2 (S ) = 0.01. From the theorem the error is upper bounded by 20c(kp) = 5.4. We see that when the events are highly correlated, the constant 3 c increases and the upper bound becomes loose (trivial in this case). These examples show that the error bound from the theorem is tighter when the events are not highly correlated, and the constant c is a way to capture the strength of the correlation. In the situations we consider,
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming 10 Article submitted to INFORMS Journal on Optimization; manuscript no. the events will have a low occurrence probability and will not have very strong correlations. Therefore, we will use U2 (S ) instead of U (S ) in the remainder of this work because U2 (S ) is much easier to work with than U (S ), and it will be a good approximation to U (S ). 2.2. Multivariate Gaussian Random Variables m We now consider a probability model that captures a fairly general class of events. Let {Xi }i=1 be jointly Gaussian random variables with mean vector µ and covariance matrix ⌃. We define the events Ei = {X i t} for some constant t. If we imagine each Xi as the return of a company we invest in, then the event says that company i has a return greater than t. For fantasy sports competitions, Xi can be the points of lineup i and Ei corresponds to the lineup exceeding t points. We further assume that t > max1im µi because we are interested in the unlikely event that one of the Xi exceeds its mean by a large amount. For instance, in daily fantasy hockey contests, the maximum mean of a lineup is around 30 points, while the winning threshold t is near 60 points. We want to choose a set of entries S ✓ [m] to maximize U2 (S ). To do this, we must first calculate the marginal and joint probabilities of the events. Since no closed form expression exists for these probabilities for multivariate Gaussian random variables, we instead resort to approximations. We have the following result. m Theorem 2.5 Let {Xi }i=1 be jointly Gaussian random variables. Let the marginal mean and variance of Xi be µi and 2 i and let the correlation coefficient of Xi and Xj be ⇢ij . In addition, let zi = (t µi )/ i . Define the function U2l (S ) as X ✓ ◆ 1 zi2 U2l (S ) = p exp i:Ei 2S 2⇡ i (zi + 1/zi ) 2 ! 1 X 1 (2t µi µj )2 p exp 2 2 . (2.4) 2 i,j: 2⇡(2t µ1 µ2 ) 2 i + j + 2⇢ij i j Ei ,Ej 2S i6=j Then U2 (S ) U2l (S ). The function U2l (S ) is a lower bound on U2 (S ) and has a closed form expression. We use this function to gain insights on good entries. From the expression for U2l (S ) we observe some important features that characterize a subset S that will have a high chance of winning. We assume that zi 1,, which can be done by having t be large enough. In this case, the contribution of the first summation to U2l (S ) increases for large µi and large i. The contribution of the second summation increases for small ⇢ij . There is an intuitive explanation for how µi , i, and ⇢ij impact the objective function. First, the means of the chosen entries should be large so that there is a greater probability that they exceed t. Second, the variance of the entries should be large as well. This is less obvious, but the intuition here is that all one cares about is
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming Article submitted to INFORMS Journal on Optimization; manuscript no. 11 having some entry’s score exceed t. If entries with large variances are chosen, this increases the probability of exceeding t. While this also increases the probability that some of the entries will have a low value, this is not a concern as the goal is to have at least one exceed t. Third, the correlation between each pair of entries should be small. What this does is diversify the selected entries so there is a better chance that one of them exceeds t. In short, one would like S to consist of entries with high means and high variance that have low correlation with each other. 2.3. Picking Winners with Constrained Resources p We now consider a case where entries are constructed from a set of resources {Yj }j=1 that are jointly Gaussian random variables. We define the mean and standard deviation of Yj as µ0j and j, 0 respectively. We define the correlation coefficient of Yj and Yl as ⇢0jl . Each entry is given by the sum of n resources. Let us define xij as variables that are one if resource j is in entry i and zero otherwise. Then we can write Pp Xi = j=1 Yj xij . We assume that there are certain constraints on the resources such that not every possible subset of q resources is a feasible entry. In this scenario, we want to construct k feasible entries from the given resources to maximize the probability of winning. To do this we will develop an integer programming formulation that builds upon the intuitions gained in Section 2.2. Specifically, our general paradigm for the formulation will make use of the following three insights. 1. Each entry has a high mean in order to increase the probability it exceeds the threshold t. 2. Each entry has a high variance in order to increase the probability it exceeds the threshold t. 3. Each pair of entries have minimal correlation to increase the probability that at least one of the entries exceeds the threshold t. We can write the mean of Xi as p X µi = µ0j xij . (2.5) j=1 The variance of Xi is p p p X X X 2 i = ( j0 )2 xij + ⇢0jl 0 j 0 l xij xil , (2.6) j=1 j=1 l=1,l6=j and the covariance of Xi and Xq is p p p X X X Cov(Xi , Xq ) = ( 0 2 j ) xij xqj + ⇢0jl 0 j 0 l xij xql , (2.7) j=1 j=1 l=1,l6=j With these expressions we want to understand how to construct a set of entries that will have a high probability of winning. To achieve a high mean, each entry should be chosen to maximize the sum of its resources’ means. This insight is fairly obvious and natural. The more interesting insights come from the variances and covariances of the entries. To obtain a more intuitive understanding of what entries have good
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming 12 Article submitted to INFORMS Journal on Optimization; manuscript no. properties with respect to their variance and covariance, suppose the variance of each resource is equal to one, and the correlation coefficient to be either zero, , or for some > 0. We can then characterize the variance of an entry by the number of pairs of resources that have a positive or negative correlation, and the covariance of a pair of entries by the number of their shared resources and the number of pairs of resources with positive and negative correlations. Let us define for Xi the number of positively and negatively pairs of correlated resources as n+ i and ni . Let us also define for Xi and Xq the number of positively and negatively pairs of correlated resources as n+ iq and niq , and the number of shared resources as niq . We will also refer to niq as the overlap of entries Xi and Xj because this is the number of resources they have in common. With this notation, the variances and covariances can be written as 2 i =n+ n+ i ni (2.8) Cov(Xi , Xq ) = niq + n+ iq niq (2.9) From these expressions we gain some useful insights concerning the variances and covariances. A high variance can be achieved if the entry has a large n+ i and a small ni . That is, the entry’s resources should be chosen so many of them are positively correlated, and few of them are negatively correlated. By avoiding negative correlations, we are making it more likely that either the resources all have a high value or all have a low value. The covariance of a pair of entries can be reduced in two ways. First, reduce the overlap niq . If the entries share fewer resources, they will clearly be less correlated. Second, increase the number of pairs of resources between the lineups that have a negative correlation, and decrease the number of pairs of resources with positive correlation. Limiting the number of positively correlated resources between lineups reduces their covariance and subsequent correlation coefficient. 2.4. Sequential Integer Programming Approach with Constrained Resources Constructing a set of entries that optimizes the U2l (S ) is non-trivial. The function is non-linear and non- convex. Therefore, we will not directly maximize U2l (S ). Instead, we will use the three properties discussed about U2l (S ) to guide the development of a sequential integer programming approach for constructing a set of entries from constrained resources that have a high probability of winning. We choose a greedy approach for three important reasons. First, from the submodular property of the original objective function we have a lower bound on the performance of a greedy solution. The objective function we will use in our integer programming formulation is different from the original objective function, but shares some of its key properties, so we assume the loss in optimality with our greedy approach will not be significant. Second, the integer programming approach we propose is linear and can be solved quickly, which will be important in applications we consider later. Third, and most importantly, we will show in Section 5 that this approach performs well on actual data. In particular, we will see that with this approach we are able to consistently perform well in daily fantasy sports contests.
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming Article submitted to INFORMS Journal on Optimization; manuscript no. 13 We consider the situation described in Section 2.3 where we want to construct k entries consisting of n resources each from a set of p resources. As previously stated, our decision variable is xij , which is 1 if p resource j is in entry i. Let x⇤ij j=1 correspond to the ith greedy entry. This is the solution to our integer program in the ith iteration. We will construct the entries sequentially in the following manner. We choose k k a set of positive constants {✏i }i=1 and { iq }i,q=1 . Assume we have obtained the first i 1 entries. We then construct the ith entry to maximize its mean subject to its variance being larger than ✏i , and its covariance with entry q being less than iq for q = 1, . . . , i 1. For i = 2, . . . , k, our integer program for the ith entry is p X maximize µ0j xij x j=1 p p p X X X subject to ( 0 2 j ) xij + ⇢0jl 0 j 0 l xij xil ✏i j=1 j=1 l=1,l6=j p p p X X X (2.10) ( j0 )2 xij x⇤qk + ⇢0jl 0 j 0 ⇤ l xij xql iq , q = 1, . . . , i 1 j=1 j=1 l=1,l6=j p X xij = n j=1 x 2 G. p where G ⇢ {0, 1} is some general feasible region. For constructing the first entry we solve the integer program (2.10), but we omit the covariance constraint from the problem. The greedy approach only constrains the covariance of a lineup with the previous lineups, whereas a non- greedy approach would limit all pairwise covariances. By only constraining the covariance with previous lineups, the number of covariance constraints is linear in the number of previous entries. The variance constraints are non-linear in this formulation. We can introduce auxiliary variables to make this formulation linear as is standard in many integer programming formulations. However, we take a different approach when we apply this approach to fantasy sports contests in Section 4. We will make certain assumptions on the underlying distribution of the resources, which allow us to makes these constraints linear. We will see that this allows the integer program to be solved quickly, and it still performs well in real applications. Our approach gives one the flexibility to choose the parameters ✏i and iq . We may want the first few entries’ covariances to be lower in order to force exploration of the space of entries, while for later entries this constraint can be relaxed to avoid excluding entries with large means. However, we will see that using a single value for iq and for ✏i works well in practice. In addition, we will also see that the choice of the value for iq depends upon the size of the space of resources. 3. Hockey Data Analysis To demonstrate the effectiveness of our approach for picking winners, we apply it to top-heavy daily fantasy sports hockey contests as described in Section 1. The entries into these contests are known as lineups, and
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming 14 Article submitted to INFORMS Journal on Optimization; manuscript no. 8 5 Average FPPG Line 1 Line 2 Standard Deviation FPPG 4.5 7 Line 3 Average Player Cost [$ thousands] Line 4 4 Power Play Line 1 6 Power Play Line 2 Average FPPG 3.5 5 3 4 2.5 3 2 1.5 2 1 1 0.5 0 Goalie Center Winger Defenseman 0 Winger Center 3.5 Daily Fantasy Nerd Rotogrinders 3 Mean Absolute Error [FPPG] 2.5 2 1.5 1 0.5 0 Goalie Center Winger Defenseman Skaters Figure 2 (top left) Mean and standard deviation of fantasy points per game (FPPG) and average player cost in DraftKings for each hockey position. (bottom left) Mean absolute error of NHL player FPPG predictions of Daily Fantasy Nerd and Rotogrinders for each hockey position. (top right) Mean FFPG of forwards in different types of lines. (bottom right) Screenhsot of an NHL lineup from DraftKings. these lineups consist of resources that are players in the National Hockey League (NHL), which is the main hockey league in North America. The daily fantasy contests we focus on are from the site DraftKings. We begin by describing the basic elements of hockey and hockey daily fantasy sports contests. To apply our approach, we need to know the mean and correlation of the resources, which are the hockey players. In this section we present models and analysis for these inputs. Section 3.2 presents predictive models for players points using publicly available data, and Section 3.3 studies the structural correlations between hockey players. While our analysis focuses on DraftKings, we note that other daily fantasy sports sites have similar contests and point scoring systems. All data in this section was collected between October 21, 2015 and December 31, 2015. 3.1. Hockey Basics A hockey team consists of six players: one center, two wingers, two defensemen, and a goalie. The centers, wingers, and defensemen are known as skaters because they are free to skate on the ice rink, whereas the goalie primarily stays in front of the goal. In hockey the aim is for a team to shoot a puck into the goal of the opposing team and the goalie’s task is to protect the goal from any opponent scores.
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming Article submitted to INFORMS Journal on Optimization; manuscript no. 15 Score type Points Goal 3 Assist 2 Shot on Goal 0.5 Blocked Shot 0.5 Short Handed Point Bonus (Goal/Assist) 1 Shootout Goal 0.2 Hat Trick Bonus 1.5 Win (goalie only) 3 Save (goalie only) 0.2 Goal allowed (goalie only) -1 Shutout Bonus (goalie only) 2 Table 1 Points system for NHL contests in DraftKings. In daily fantasy sports hockey contests there are constraints on the types of players that must be present in a lineup. For DraftKings, each lineup must consist of two centers, three wingers, two defensemen, one goalie, and one utility player that is any skater, resulting in a lineup of nine players. We show a screenshot of one possible DraftKings lineup in Figure 2. The figure also shows a column labeled FPPG, which stands for fantasy points per game. This is the average number of fantasy points per game the player has earned throughout the current NHL season. DraftKings provides this information to help users construct their lineups. The total fantasy points for a lineup is the sum of each player’s fantasy points. The lineup shown has 34.4 fantasy points per game. This score is in the typical range of NHL lineups in DraftKings, and it gives a sense of the value of different scoring actions. In a daily fantasy sports contest, there are many ways for players to score fantasy points. Because we test our approach in DraftKings, we will focus on its points scoring system. We summarize the details of the DraftKings scoring system in Table 1. In Figure 2 we show the basic statistics of points per game for each position averaged over all NHL players. We also show the average DraftKings cost per player in the figure. As can be seen, on average goalies tend to score almost twice as many points as all other players, and also cost twice as much. Additionally, the standard deviation of each position’s points per game is roughly the same size as the average value. The centers and wingers are known as forwards. In the NHL each hockey team plays its forwards in fixed sets known as lines. This means that if one player from the line, such as the center, is on the ice, then so are the other two players from the line. Each team has four standard lines and two power play lines, which only play when there is a power play as a result of a penalty. We show the average points per game for players based upon their line in Figure 2. The rank of the line typically suggests how well it performs. As can be seen, line one is generally the highest scoring line. The points system of DraftKings is similar to most daily fantasy hockey points systems. It gives more points for players that perform better, but it also has some important properties that we use to construct our lineups. The first property concerns assists, which is passing the puck to a player who either scores or who passes the puck to the player that scores. Each assist is worth two points, and DraftKings awards points
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming 16 Article submitted to INFORMS Journal on Optimization; manuscript no. for up to two assists per goal. This is an important aspect of the scoring system because it means that for each goal scored, it is possible for a single lineup to receive seven points (three points for the goal, and four points for the two assists that led to the goal). However, such a situation can only occur if all players involved are on a single lineup. This suggests that to score many points, a lineup should contain all players from a single line. By putting all players from a single line in a lineup, we are essentially increasing the variance of the lineup. This is a popular fantasy sports tactic known as stacking. Many expert daily fantasy sports players use stacking to win in a variety of sports contests (Bales 2015a,b, Drewby 2015). The second property of the points system concerns goalies. If a goalie’s team wins the game, an additional three points is awarded to the goalie. This is important because as we will see, it is possible to predict who will win an NHL hockey game with relatively good accuracy, so by choosing goalies on winning teams, an extra three points can be obtained, which is a significant amount in hockey contests given that lineups average between 30 to 40 points. 3.2. Player Point Predictions Many fantasy sports players devote a substantial amount of effort in developing elaborate prediction mod- els for players’ performance. Their advantage comes mainly from the power of their predictive models. However, we do not have the domain knowledge required to improve upon the prediction models of the top fantasy players. Therefore, we take a different approach. Publicly available player point predictions are provided by the websites Rotogrinders (Rotogrinders 2015) and Daily Fantasy Nerd (DailyFantasyNerd 2015). We find the predictions from these sites to be relatively accurate, but the accuracy varies by position. We plot in Figure 2 the mean absolute error in points of the two sites’ predictions for different hockey positions using our data from the 2015 NHL season. We obtain each of our predictions from Rotogrinders and Daily Fantasy Nerd roughly thirty minutes before the corresponding DraftKings contest began. We see that the prediction errors of both sites are similar. Therefore, it does not seem that either one has a superior prediction model. We build a predictive model for the fantasy points for each player in the NHL using these prediction sites. For a player k, let fk1 and fk2 be the predictions by Rotogrinders and Daily Fantasy Nerd, respectively. For skaters, we perform a linear regression on the player’s points using these predictions as features. We denote µk as the predicted points of player k using our model. For skater k our prediction is µk = 0 + 1 f1k + 2 f2k + ✏k (3.1) where ✏k is a Gaussian error term. For goalies, we must also factor in the outcome of the game since there is a three point bonus for victory. Daily Fantasy Nerd provides win probabilities for each goalie, and we have found these estimates to be relatively accurate. We perform a linear regression on the goalie points using
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming Article submitted to INFORMS Journal on Optimization; manuscript no. 17 (1) (2) (3) (4) (5) (6) Skater points Goalie points Goalie points Goalie points Goalie points Goalie points 1 0.634⇤⇤⇤ 0.628⇤⇤⇤ 0.203 0.203 (Rotogrinders) (0.0203) (0.0864) (0.144) (0.144) 2 0.282⇤⇤⇤ -0.0173 -0.0309 -0.0301 (Daily Fantasy Nerd) (0.0242) (0.106) (0.113) (0.113) 3 4.310⇤ 5.304⇤⇤ 4.176⇤ 5.172⇤⇤ (Win probability) (2.123) (2.005) (2.064) (1.941) 0 1.334 1.686 (0.0314) (0.549) (1.032) (1.003) (1.013) (0.983) R2 0.238 0.0858 0.0179 0.0140 0.0178 0.0139 Samples 10825 565 506 506 506 506 Standard errors in parentheses ⇤ p < 0.05, ⇤⇤ p < 0.01, ⇤⇤⇤ p < 0.001 Table 2 Regression coefficients, R squared, and sample count for different prediction models of skater and goalie points. as predictor variables the predictions of Rotogrinders, Daily Fantasy Nerd, and the win probability of the goalie’s team. For a goalie k, let this win probability by pk . Then the prediction for goalie k is µk = 0 + 1 f1k + 2 f2k + 3 pk + ✏k (3.2) where ✏k is a Gaussian error term. We compare different prediction models in Table 2. For skaters, both Rotogrinders and Daily Fantasy Nerd predictions are significant. For goalies, something different occurs. When we do not include the win probability we find that only Rotogrinders is significant. When the win probability is included, it is the only significant feature. From Table 2 we see that the models do not have high accuracy. However, our metric of interest is not accuracy, but performance in real hockey contests. We will test these different models in these contests in Section 5. 3.3. Player Correlations To create high variance lineups we must first understand the correlations between players. There are two important correlations we look at. The first concerns players in lines. The second concerns forwards and goalies. We first begin by examining the correlations of FPPG between players in the same line versus those in different lines. We calculate the Pearson correlation coefficient between the FPPG for every pair of NHL forwards (centers and wingers) in the same line, and on the same team but different line. We plot the resulting average correlation coefficients for each group in Figure 3. We see that the players on the same line have a much higher correlation than players on different lines. This is not surprising given the way fantasy points are awarded. This correlation is most likely due to the assist/goal combinations that give
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming 18 Article submitted to INFORMS Journal on Optimization; manuscript no. 0.3 0.3 Corr. Coef. of Offensive Player FPPG Offensive Skater Corr. Coeff. of Goalie-Skater FPPG 0.25 0.25 Defensemen 0.2 0.2 0.15 0.15 0.1 0.1 0.05 0.05 0 0 −0.05 -0.05 −0.1 -0.1 −0.15 -0.15 −0.2 -0.2 Line 1 Line 2 Line 3 Line 4 Different Line Same Team Different Team Figure 3 (left) Average correlation coefficient of FPPG for forwards in the same and different lines. (right) Average correlation coefficient of FPPG for goalies and skaters in the same and opposing teams. points to multiple players who are simultaneously on the ice. This correlation should be included in a lineup to increase the variance. We next look at the correlation between goalies and skaters in the same game. We consider the correlation of FPPG for forwards and defensemen with goalies on the same and opposing team in a game. We plot the resulting average Pearson correlation coefficient of the FPPG for these groups in Figure 3. We find that the correlation is negative for goalies and skaters on opposing teams. For the same team the correlation is near zero. The negative correlation is due to the fact that if a skater scores fantasy points, it is typically because a goal was scored, which gives negative fantasy points to the goalie. On the same team the only structural condition that would correlate skaters and goalies is the win bonus and points for scoring goals. However, this is much weaker than the negative correlation of goalies opposing skaters. The negative correlation is something we want to avoid within a lineup as it would reduce the overall variance. Therefore, to increase lineup variance, we will avoid putting goalies and skaters on opposing teams in a single lineup. 4. Fantasy Hockey Approach and Integer Programming Formulations We now present our approach for selecting multiple lineups for hockey contests. The integer program is based upon the formulation in Section 2.4. For the mean points of a player we use our predictive regression models. Due to difficulties in estimation, we do not explicitly use the correlations and variances of the player’s points. Instead we assume that the players all have the same variance and that the magnitude of the covariance is much smaller than the variance. This will lead to simple constraints for the variance and covariance. We will construct m lineups from a set of p NHL players, and we let the variable xik equal one if player k is selected for lineup i, and zero otherwise. Each player k is predicted to achieve µk fantasy points from our predictive model.
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming Article submitted to INFORMS Journal on Optimization; manuscript no. 19 4.1. Feasibility Constraints We begin by formulating the basic feasibility constraints of a lineup. Daily fantasy sports contests all impose a budget B constraint on a lineup. For DraftKings, this budget is B = 50, 000 fantasy dollars. As mentioned earlier, there is also a constraint on the number of players of each type of position. For nota- tion, we let the cost of player j be cj . There are NT NHL teams playing in a contest, and we denote the set of players on team l by Tl . In addition, we denote the set of players who are centers, wingers, defenseman, and goalies by C, W , D, and G, respectively. The DraftKings position constraints for the ith lineup are given by X 2 xij 3, j2C X 3 xij 4, j2W X (4.1) 2 xij 3, j2D X xij = 1, j2G DraftKings also requires each lineup to have players that come from at least three different NHL teams. The team constraints for lineup i are X til xik , l = 1, . . . , NT k2Tl NT X (4.2) til 3, l=1 til 2 {0, 1} , l = 1, . . . , NT . We put these constraints together to obtain the feasibility constraints for a lineup: p X cj xij B, (budget constraint) j=1 p X xij = 9, (lineup size constraint) k=1 (4.3) Equations (4.1), (position constraint) Equations (4.2), (team constraint) xij 2 {0, 1} , j = 1, . . . , p. 4.2. Stacking Lineups Using Structural Correlations We now present the integer programming constraints on the lineup variance. The constraints we use are simpler than the general form in equation (2.10). Rather than force the variance of the lineup to be larger than a lower bound, we constrain the structure of the lineup to ensure that its variance will be large. We assume equal variance of all players, and covariances that are much smaller in magnitude than the variances. This allows us to approximate the variance of a lineup using only the number of pairs of positively and negatively
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming 20 Article submitted to INFORMS Journal on Optimization; manuscript no. correlated players. The constraints we present next, which we refer to as different types of stacking, exclude any negatively correlated players and try to have a large number of positively correlated players. Goalie Stacking. As discussed in Section 3.3, goalies are negatively correlated with the skaters that they are opposing. Therefore, to increase the variance of a lineup, we would like to avoid having this negative correlation by making sure none of the lineup’s skaters are opposing its goalie. We will refer to this con- straint as goalie stacking. To model this constraint in our integer programming formulation, we denote the set of skaters who are opposing goalie k by Ok . For lineup i, the goalie constraint is then given by: X xil 6(1 xij ), 8j 2 G. (4.4) l2Oj This constraint will force the goalie variable xik to be zero if the lineup has any skater opposing goalie k. Line Stacking. Additionally, in Section 3.3 we found that players on the same line are positively cor- related. Therefore, to increase the lineup variance, we would like to impose additional constraints on our formulation that will create lineups with players on the same line. We will refer to this as line stacking. Each entry consists of eight skaters, six being offensive (wingers and centers), and a line consists of three offensive skaters. The position constraints allow a lineup to include a maximum of two lines. To include as much positive correlation as possible amongst the players, we can make a lineup have one complete line of three players, and one partial line with at least two players. We do this by requiring a lineup have two partial lines and one complete line. Given the position constraints, this will force one of the partial lines to be the same as the complete line. To formulate the line stacking constraints, we introduce some notation. Let NL denote the total number of lines, and let Ll denote the set of players on line l. With this notation we can formulate the constraint of having at least one complete line in lineup i as X 3vil xij , l = 1, . . . , NL j2Ll NL X (4.5) vil 1 l=1 vil 2 {0, 1} , l = 1, . . . , NL . Under these constraints vil is one if lineup i has all three players from line l, and zero otherwise, and we require at least one of the vil to be one. To formulate the constraint of having at least two players from two distinct lines, we use the following constraints: X 2wil xik , l = 1, . . . , NL k2Ll NL X (4.6) wil 2 l=1 wil 2 {0, 1} , l = 1, . . . , NL .
Hunter, Vielma, and Zaman: Picking Winners in Daily Fantasy Sports Using Integer Programming Article submitted to INFORMS Journal on Optimization; manuscript no. 21 Similar to the complete line constraints, this constraint sets wil to one if at least two out of three players of line l are in lineup i, and there must be at least two wil equal to one. Defensemen Stacking. Lastly, we have found that defensemen that are on the first power play line score substantially higher than defensemen that are not. While including the stronger defenseman may not affect the average points of the lineup, it could affect its actual points. If we force the lineup to have three teams, then the teammates of this defenseman will likely be included in the lineup. This produces additional pos- itive correlation within the lineup, which is desirable. Because the defenseman is from the first line, when his team does well, we would expect the lineup to achieve more points than if we had chosen a weaker defenseman. We will refer to this as defensemen stacking. To model this constraint, let PD denote the set of defensemen that are on any team’s first power play line. Then, to use only these defensemen in lineup i we add the following constraints to our integer programming formulation: xij = 0 8 j 2 D \ PD . (4.7) This constraint makes sure that any defenseman that is chosen for the lineup is also in the first power play line of some team. There are many other constraints that could be added to the model, such as forcing a lineup to have every player on a team’s first power play, imposing constraints to have seven players from one game, etc. We did not investigate all the possible types of stacking, but they can all be naturally incorporated into our integer programming formulation. In this work we focus on the constraints presented because they capture the major structural correlations in hockey. 4.3. Overlap Constraints Our integer programming formulation in Section 2.4 had a upper bound on the covariance of lineup i with the previous i 1 lineups. We assume that the player variance is much larger in magnitude than the player covariances. Using this assumption, we approximate the correlation of lineups i and j as simply the overlap of the two lineups. We can then add constraints to upper bound this overlap with all previous i 1 lineups. We will refer to these as overlap constraints. We let x⇤lj be the optimal value of the variable for player j in lineup l. We define the overlap constraints for lineup i as p X x⇤lj xij , l = 1, . . . , i 1. (4.8) j=1 These constraints make sure that lineup i will have no more than players in common with any previously constructed lineup. We refer to as the maximum lineup overlap. Decreasing forces the lineups to be more diverse, whereas for larger the lineups may share more players. We will see in Section 5 how the choice of is impacted by the number of NHL games being played on a given night.
You can also read