X

Confidențialitate & cookie-uri

acest site folosește cookie-uri. Continuând, sunteți de acord cu utilizarea lor. Aflați mai multe, inclusiv cum să controlați cookie-urile.

Am Înțeles!

reclame

Nota 1: Aceasta este partea 1 a unui post din două părți despre construirea echipelor fantasy league. Citiți mai întâi acest lucru și apoi citiți Partea 2 aici.

Nota 2: Deși titlul spune „Fantasy Football”, modelul pe care îl descriu mai jos poate fi, în principiu, modificat pentru a se potrivi oricărei ligi fantasy pentru orice sport.

football am fost abordat recent de mai multe persoane (unii studenți, unii prieteni) cu privire la crearea unor echipe optime pentru ligile de Fotbal fantasy. Odată cu creșterea recentă a site-urilor de pariuri precum Fan Duel și Draft Kings, acest lucru a devenit un milion de milioane (sau ar trebui să spun, miliarde?) industria dolarului. Așa că m-am gândit să scriu o rețetă simplă pentru a ajuta pe toată lumea. Suntem pe cale să folosim analize Prescriptive pentru a paria pe sport. Ești gata? Să facem asta! Voi începe cu modelul matematic și apoi vă voi arăta cum să faceți totul să funcționeze folosind o foaie de calcul.

Regulile

Regulile echipei de Fotbal fantasy afirmă că o echipă trebuie să fie formată din:

  • 1 quarterback (QB)
  • 2 running backs (RB)
  • 3 receptoare largi (WR)
  • 1 capăt strâns (TE)
  • 1 kicker
  • 1 apărare

unele ligi au, de asemenea, ceea ce se numește „Flex player”, care ar putea fi fie un RB, WR, sau te. Voi explica cum să se ocupe de Flex player de mai jos. În plus, jucătorii au un cost, iar persoana care creează echipa are un buget, numiți-l B, de respectat (de obicei B este de 50.000 USD sau 60.000 USD).

datele

pentru fiecare jucător i, ni se oferă costul menționat mai sus, îl numim c_i și o proiecție punctuală p_i. Acesta din urmă este o estimare a numărului de puncte pe care ne așteptăm ca jucătorul să înscrie într-o anumită săptămână sau joc. Când vine vorba de apărare, deși nu înscrie întotdeauna, există și o modalitate de a calcula puncte pentru aceasta (de exemplu, punctele prevenite). Cum se calculează aceste proiecții punctuale, vă puteți întreba? Aici intră în joc analizele Predictive. Este în esență prognoză. Te uiți la performanțele trecute/recente, te uiți la viitorul adversar, te uiți la sănătatea jucătorilor etc. Există site-uri web care vă oferă aceste proiecții, sau puteți calcula propriul. Cu cât sunteți mai exact la aceste predicții, cu atât este mai probabil să încasați pariurile. Aici, vom lua aceste numere ca date.

modelul de optimizare

principalele decizii care trebuie luate sunt simple: ce jucători ar trebui să fie în echipa noastră? Aceasta poate fi modelată ca o variabilă de decizie da/nu pentru fiecare jucător. Deci, să creăm o variabilă binară numită x_i care poate lua doar două valori: este egală cu valoarea 1 când jucătorul i este în echipa noastră și este egală cu valoarea zero când jucătorul i nu este în echipa noastră. Valoarea i (ID-ul jucătorului) variază de la 1 la numărul total de jucători disponibili pentru noi.

obiectivul nostru este de a crea o echipă cu cea mai mare valoare agregată posibilă a punctelor proiectate. Adică vrem să maximizăm suma proiecțiilor punctuale ale tuturor jucătorilor pe care îi includem în echipă. Această formulă arată astfel:

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

formula de mai sus funcționează deoarece atunci când un jucător este în echipă (x_i=1), p_i se înmulțește cu unul și se adaugă la sumă, iar atunci când un jucător nu este în echipă (x_i=0) p_i se înmulțește cu unul și se adaugă la sumă, iar atunci când un jucător nu este în echipă ( x_i = 0 ) p_i înmulțit cu zero și nu se adaugă la suma finală. Mecanismul pe care tocmai l-am descris este ideea principală din spatele a ceea ce face ca toate formulele din acest model să funcționeze. De exemplu, dacă predicțiile punctuale pentru primii 3 jucători sunt 12, 20 și 10, Funcția de maximizare începe ca:  \ max 12x_1 + 20x_2 + 10x_3 + \cdots

constrângerea bugetară poate fi scrisă spunând că suma costurilor tuturor jucătorilor din echipa noastră trebuie să fie mai mică sau egală cu bugetul nostru B , astfel:

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

de exemplu, dacă primii 3 jucători costă 9000, 8500 și 11000, iar bugetul nostru este de 60.000, formula de mai sus ar arăta astfel:  9000x_1 + 8500x_2 + 11000x_3 + \cdots \leq 60000.

pentru a impune ca echipa să aibă numărul corect de jucători în fiecare poziție, o facem poziție după poziție. De exemplu, pentru a solicita ca echipa să aibă un fundaș, scriem:

\displaystyle \ sum_ {\text{Toate} i \ text{ care sunt fundași}} x_i = 1

pentru a solicita ca echipa să aibă două spate și trei receptoare largi, scriem:

\displaystyle \ sum_ {\text{Toate} i \ text{ care rulează înapoi}} x_i = 2

\displaystyle \ sum_ {\text{Toate } i \ text{ care sunt receptoare largi}} x_i = 3

constrângerile pentru pozițiile rămase ar fi:

\displaystyle \ sum_ {\text{Toate } i \ text{ care sunt capete strânse}} x_i = 1

\displaystyle \ sum_ {\text{Toate} i \ text{ care sunt kickers}} x_i = 1

\displaystyle \ sum_ {\text{Toate} i \ text{ care sunt apărări}} x_i = 1

Cazul curios al Flex Player

Flex player adaugă o întorsătură interesantă acestui model. Este un jucător care, dacă înțeleg corect, ia locul kicker-ului (ceea ce înseamnă că nu am avea constrângerea kicker de mai sus) și poate fi fie un RB, WR, fie TE. Prin urmare, imediat, avem o nouă decizie de luat: ce fel de jucător ar trebui să fie flex? Să creăm trei noi variabile da / nu pentru a reprezenta această decizie:  f_ {\text{RB}},  f_{\text{WR}}și f_{\text{TE}}. Aceste variabile înseamnă, respectiv: este flex RB?, este flex WR?, și este flex TE? Pentru a indica faptul că doar unul dintre aceste lucruri poate fi adevărat, scriem constrângerea de mai jos:

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

în plus, a avea un jucător flex este echivalent cu creșterea părții drepte a constrângerilor care numără numărul de RB, WR și TE cu unul, dar numai pentru una dintre aceste constrângeri. Realizăm acest lucru schimbând aceste constrângeri de la formatul pe care l-au avut mai sus la următoarele:

\displaystyle \ sum_ {\text{Toate } i \ text{ care rulează înapoi}} x_i = 2 + f_ {\text{RB}}

\displaystyle \ sum_ {\text{Toate } i \ text{ care sunt receptoare largi}} x_i = 3 + f_ {\text{WR}}

\displaystyle \ sum_ {\text{Toate } i \ text{ care sunt capete strânse}} x_i = 1 + f_ {\text{TE}}

rețineți că, deoarece numai una dintre variabilele f poate fi egală cu 1, doar una dintre cele trei constrângeri de mai sus va avea partea dreaptă crescută de la valoarea inițială de 2, 3 sau 1.

alte cerințe potențiale

datorită preferințelor personale, informațiilor privilegiate sau altor considerente ezoterice, s-ar putea dori să includă alte cerințe în acest model. De exemplu, dacă vreau cea mai bună echipă care include jucătorul numărul 8 și exclude jucătorul numărul 22, trebuie pur și simplu să forțez variabila x a jucătorului 8 să fie 1, iar variabila x a jucătorului 22 să fie zero. O altă constrângere care poate fi utilă este aceea de a spune că dacă jucătorul 9 este în echipă, atunci jucătorul 10 trebuie să fie și în echipă. Acest lucru se realizează prin:

 x_9 \leq x_{10}

dacă ați vrut opusul, că este în cazul în care jucătorul 9 este pe echipa apoi jucător 10 nu este pe echipa, v-ar scrie:

x_9 + x_{10} 1

alte condiții de-a lungul acestor linii sunt, de asemenea, posibile.

punând totul laolaltă

dacă ai fi suficient de răbdător să rămâi cu mine până aici, ești dornic să pui această matematică la treabă. Să o facem folosind Microsoft Excel. Începeți prin descărcarea acestei foi de calcul și deschiderea acesteia pe computer. Iată ce conține:

  • coloana A: lista numelor jucătorilor.
  • coloana B: Da/Nu decizii pentru dacă un jucător este în echipă (acestea sunt variabilele x pe care Excel Solver le va calcula pentru noi).
  • coloanele de la C la H: steaguri care indică dacă un jucător este sau nu de un anumit tip (0 = Nu, 1 = da).
  • coloanele I și J: proiecțiile de cost și puncte pentru fiecare jucător.

acum derulați în jos, astfel încât să puteți vedea rândurile 144 până la 150. Celulele din coloana B sunt în prezent goale, deoarece nu am ales încă ce jucători să adăugăm la echipă. Dar dacă aceste alegeri ar fi fost făcute (adică dacă am fi umplut coloana B cu 0 și 1), înmulțirea coloanei B cu coloana C într-o manieră celulară și adăugarea tuturor v-ar spune câți fundași aveți. Am inclus această multiplicare în celula C144 folosind formula SUMPRODUCT. În mod similar, celulele D144: H144 calculează câți jucători din fiecare tip am avea odată ce celulele din coloana B primesc valori. Calculele costului total al echipei și punctele totale proiectate pentru echipă sunt analoage calculelor anterioare și utilizează, de asemenea, formula SUMPRODUCT (vezi celulele I144 și J144). Puteți încerca să alegeți unii jucători de mână (punând 1 în unele celule din coloana B) pentru a vedea cum se vor schimba valorile celulelor din rândul 144.

dacă deschideți acum fereastra Excel Solver (sub fila Date, dacă programul de completare Solver este activ), veți vedea că am deja întregul model configurat pentru dvs. Dacă nu ați folosit niciodată Excel Solver, următorul videoclip din două părți vă va ajuta să începeți cu acesta: partea 1 și partea 2.

celula obiectivă este J144 și asta vrem să maximizăm. Variabilele (alias schimbarea celulelor) sunt selecțiile jucătorului din coloana B, plus deciziile de tip Flex-player (celulele D147:F147). Constrângerile spun că: (1) numărul real de jucători de fiecare tip (C144:H144) sunt egale cu numărul dorit de fiecare tip (C146:H146), (2) costul total al echipei (I144) nu depășește bugetul (I146), (3) cele trei variabile binare Flex-player adăuga până la 1 (D150 = F150), și, (4) toate variabilele în problema sunt binare. (Am setat numărul necesar de kickers în celula G146 la zero, deoarece folosim opțiunea flex-player. Dacă puteți avea atât un jucător flex, cât și un kicker, trebuie doar să tastați a 1 în celula G146.) Dacă faceți clic pe butonul” rezolvați”, veți vedea că cel mai bun răspuns este o echipă care costă exact 50.000 USD și are o valoare totală a punctului proiectat de 78,3. Jucătorul său flex a ajuns să fie un RB.

acest model este suficient de mic încât îl pot rezolva cu versiunea gratuită pentru studenți a Excel Solver (care vine în mod implicit cu orice instalare Office). Dacă se întâmplă să aveți mai mulți jucători și numărul total de variabile depășește 200, solverul gratuit nu va funcționa. Dar nu dispera! Există un mare Solver add-in pentru Excel, care este, de asemenea, gratuit și nu are nici o limită de dimensiune. Se numește OpenSolver și va funcționa cu aceeași configurație pe care o am aici.

Articles

Lasă un răspuns

Adresa ta de email nu va fi publicată.