X

Personvern & Informasjonskapsler

dette nettstedet bruker informasjonskapsler. Ved å fortsette godtar du bruken av dem. Lær mer, inkludert hvordan du kontrollerer informasjonskapsler.

Fikk Det!

Annonser

Merk 1: Dette Er Del 1 av et todelt innlegg om å bygge fantasy league-lag. Les dette først og les Del 2 her.

Note 2: Selv om tittelen sier «Fantasy Football», kan modellen jeg beskriver nedenfor i prinsippet endres for å passe til enhver fantasy-liga for enhver sport.

football jeg har nylig blitt kontaktet av flere personer (noen studenter, noen venner) om etableringen av optimale lag for fantasy fotball ligaer. Med den siste bølgen av spillsteder som Fan Duel og Draft Kings, har dette blitt en multi-million(eller skal jeg si milliarder?) dollar industrien. Så jeg tenkte jeg skulle skrive ned en enkel oppskrift for å hjelpe alle ut. Vi er i ferd med å bruke Prescriptive Analytics for å satse på sport. Er du klar? La oss gjøre dette! Jeg starter med matematikkmodellen og viser deg hvordan du får alt til å fungere ved hjelp av et regneark.

Reglene

fantasy fotball lag regler sier at et lag må bestå av:

  • 1 quarterback (QB)
  • 2 kjører ryggen (RB)
  • 3 brede mottakere (WR)
  • 1 tight end (TE)
  • 1 kicker
  • 1 forsvar

Noen ligaer har også det som kalles en «flex player», som kan være enten EN RB, WR, eller te. Jeg vil forklare hvordan du håndterer flex-spilleren nedenfor. I tillegg har spillerne en kostnad, og personen som lager laget har et budsjett, kall det B , for å overholde (vanligvis B er $50.000 eller $60.000).

Dataene

for hver spiller i får vi kostnaden nevnt ovenfor, kaller den c_i og en punktprojeksjon p_i. Sistnevnte er et estimat av hvor mange poeng vi forventer at spilleren skal score i en gitt uke eller et spill. Når det gjelder forsvaret, selv om det ikke alltid scorer, er det også en måte å beregne poeng for det(f. eks. Hvordan blir disse punktprognosene beregnet, kan du spørre? Det er her Prediktiv Analyse kommer inn i spill. Det er i hovedsak prognoser. Du ser på tidligere / siste ytelse, du ser på den kommende motstanderen, du ser på spillernes helse, etc. Det finnes nettsteder som gir deg disse anslagene, eller du kan beregne din egen. Jo mer nøyaktig du er på disse spådommene, jo mer sannsynlig er det å tjene penger på innsatsene. Her tar vi disse tallene som gitt.

Optimaliseringsmodellen

de viktigste beslutningene som skal gjøres er enkle: hvilke spillere skal være på laget vårt? Dette kan modelleres som en ja/nei beslutningsvariabel for hver spiller. Så la oss lage en binær variabel kalt x_i som bare kan ta to verdier: den er lik verdien 1 når spiller i er på laget vårt, og den er lik verdien null når spiller i ikke er på laget vårt. Verdien på i (spiller-ID) varierer fra 1 til totalt antall spillere tilgjengelig for oss.

vårt mål er å skape et team med størst mulig samlet verdi av projiserte poeng. Det vil si at vi ønsker å maksimere summen av punktprojeksjoner av alle spillere vi inkluderer på laget. Denne formelen ser slik ut:

\max \displaystyle \sum_{\text{all } i} p_i x_i

formelen ovenfor virker fordi når en spiller er på laget (x_i=1), blir dens p_i multiplisert med en og legges til summen, og når en spiller ikke er på laget (x_i=0) blir dens p_i multiplisert med en og legges til summen, og når en spiller ikke er på laget ( x_i = 0 ) blir dens p_i multiplisert med null og blir ikke lagt til den endelige summen. Mekanismen jeg nettopp beskrev er hovedideen bak det som gjør at alle formler i denne modellen fungerer. For eksempel, hvis punktforutsigelsene for de første 3 spillerne er 12, 20 og 10, starter maksimeringsfunksjonen som: \ max 12x_1 + 20x_2 + 10x_3 + \ cdots

budsjettbegrensningen kan skrives ved å si at summen av kostnadene til alle spillere på laget vårt må være mindre enn eller lik budsjettet B, slik som dette:

\displaystyle \sum_ {\text{all }i} c_i x_i \ leq B

for eksempel, hvis de første 3 spillerne koster 9000, 8500 og 11000, og budsjettet vårt er 60 000, vil formelen ovenfor se slik ut:  9000x_1 + 8500x_2 + 11000x_3 + \ cdots \ leq 60000 .

for å sikre at laget har riktig antall spillere i hver posisjon, gjør vi det posisjon for posisjon. For eksempel, for å kreve at laget har en quarterback, skriver vi:

\displaystyle \ sum_ {\text{all } i \ text{ som er quarterbacks}} x_i = 1

for å kreve at laget har to løpende rygger og tre brede mottakere, skriver vi:

\displaystyle \sum_ {\text{all } i \ text{ som kjører tilbake}} x_i = 2

\displaystyle \sum_ {\text{all } i \ text{ som er brede mottakere}} x_i = 3

begrensningene for de resterende stillingene vil være:

\displaystyle \sum_ {\text{all } i \ text{ som er stramme ender}} x_i = 1

\displaystyle \ sum_ {\text{all } i \ text{ som er kickers}} x_i = 1

\displaystyle \ sum_ {\text{all } i \ text{ som er forsvar}} x_i = 1

Den Nysgjerrige Tilfelle Av Flex Player

flex player legger en interessant vri på denne modellen. Det er en spiller som, hvis jeg forstår riktig, tar plass til kickeren (noe som betyr at vi ikke ville ha kickerbegrensningen ovenfor) og kan enten VÆRE EN RB, WR eller TE. Derfor har vi med en gang en ny beslutning å gjøre: hva slags spiller skal flex være? La oss lage tre nye ja / nei-variabler for å representere denne beslutningen:  f_{\text{RB}} ,  f_{\text{WR}} og f_ {\text{TE}} . Disse variablene betyr henholdsvis: er flex RB? er det flex WR? er det flex TE? For å indikere at bare en av disse tingene kan være sant, skriver vi begrensningen nedenfor:

 f_ {\text{RB}} + f_{\text{WR}} + f_ {\text{TE}} = 1

i tillegg har en flex-spiller tilsvarende å øke høyre side av begrensningene som teller antall RB, WR og TE med en, men bare for en enkelt av disse begrensningene. Vi oppnår dette ved å endre disse begrensningene fra formatet de hadde over til følgende:

\displaystyle \sum_ {\text{all } i \ text{ som kjører tilbake}} x_i = 2 + f_ {\text{RB}}

\displaystyle \ sum_ {\text{all } i \ text{ som er brede mottakere}} x_i = 3 + f_ {\text{WR}}

\displaystyle \ sum_ {\text {all } i \ text{ som er stramme ender}} x_i = 1 + f_ {\text{TE}}

Merk at fordi bare en av variablene f kan være lik 1, vil bare en av de tre begrensningene ovenfor ha sin høyre side økt fra den opprinnelige verdien av 2, 3 eller 1.

Andre Potensielle Krav

på grunn av personlig preferanse, innsideinformasjon eller andre esoteriske hensyn, vil man kanskje inkludere andre krav i denne modellen. For eksempel, hvis jeg vil ha det beste laget som inkluderer spillernummer 8 og ekskluderer spillernummer 22, må jeg bare tvinge x-variabelen til spiller 8 til å være 1, og x-variabelen til spiller 22 til å være null. En annen begrensning som kan komme til nytte er å si at hvis spiller 9 er på laget, må spiller 10 også være på laget. Dette oppnås ved:

 x_9 \leq x_{10}

hvis du ønsket det motsatte, det vil si hvis spiller 9 er på laget da spiller 10 IKKE er på laget, vil du skrive:

x_9 + x_{10} \ leq 1

Andre forhold langs disse linjene er også mulig.

Setter Det Hele Sammen

hvis du var tålmodig nok til å holde fast med meg hele veien gjennom her, er du ivrig etter å sette denne matematikken på jobb. La oss gjøre Det Ved Hjelp Av Microsoft Excel. Start med å laste ned dette regnearket og åpne det på datamaskinen. Her er hva den inneholder:

  • Kolonne A: liste over spillernavn.
  • Kolonne B: ja / nei beslutninger for om en spiller er på laget (dette er x-variablene Som Excel Solver vil beregne for oss).
  • Kolonner C Til H: flagg som indikerer om en spiller er av en gitt type (0 = nei, 1 = ja).
  • Kolonner I Og J: kostnaden og punktprognosene for hver spiller.

rull nå ned slik at du kan se rader 144 til 150. Cellene I kolonne B er for øyeblikket tomme fordi vi ikke har valgt hvilke spillere som skal legges til laget ennå. Men hvis disse valgene hadde blitt gjort (det vil si hvis vi hadde fylt kolonne B med 0 og 1), multipliserer kolonne B Med kolonne C på en cellevis måte og legger det hele opp, vil fortelle deg hvor mange quarterbacks du har. Jeg har tatt med denne multiplikasjonen I celle C144 ved HJELP AV SUMMERPRODUCT formula. På samme måte beregner celler D144:H144 hvor mange spillere av hver type vi vil ha når cellene i kolonne B mottar verdier. Beregningene av total lagkostnad og totalt projiserte poeng for laget er analoge med tidligere beregninger og bruker OGSÅ SUMMERPRODUCT-formelen (se celler I144 Og J144). Du kan prøve å plukke noen spillere for hånd (sette 1 i noen celler i kolonne B) for å se hvordan verdiene til cellene i rad 144 vil endres.

hvis Du nå åpner Excel Solver-vinduet (Under Data-fanen, hvis Problemløser-tillegget er aktivt), ser du at jeg allerede har hele modellen satt opp for deg. Hvis du aldri har brukt Excel Solver før, vil følgende todelt video komme i gang med det: del 1 og del 2.

målcellen Er J144, og det er det vi ønsker å maksimere. Variablene (aka endring av celler) er spillervalgene i kolonne B, pluss flex-player type beslutninger (celler D147:F147). Begrensningene sier at: (1) det faktiske antall spillere av hver type (C144:H144) er lik ønsket antall av hver type (C146:H146), (2) den totale kostnaden for laget (I144) overskrider ikke budsjettet (I146), (3) de tre flex-player binære variablene legger opp til 1 (D150 = F150), og (4) alle variabler i problemet er binære. (Jeg setter det nødvendige antall kickers I celle G146 til null fordi vi bruker flex-player-alternativet. Hvis du kan ha både en flex-spiller og en kicker, skriv bare en 1 i celle G146.) Hvis du klikker på» Løs » – knappen, ser du at det beste svaret er et lag som koster nøyaktig $ 50.000 og har en total projisert poengverdi på 78.3. Dens flex-spiller endte opp med Å være EN RB.

denne modellen er liten nok til at jeg kan løse den med Den gratis studentversjonen Av Excel Solver (som kommer som standard med En Hvilken Som Helst Office-installasjon). Hvis du tilfeldigvis har flere spillere og din totale variable teller overstiger 200, vil free solver ikke fungere. Men fortvil ikke! Det finnes en stor Problemløser add-in For Excel som også er gratis og har ingen størrelsesgrense. Det heter OpenSolver, og det vil fungere med nøyaktig samme oppsett jeg har her.

Articles

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.