X

Privacy & Cookie

Questo sito utilizza cookie. Continuando, accetti il loro utilizzo. Ulteriori informazioni, tra cui come controllare i cookie.

Capito!

Pubblicità

Nota 1: Questa è la parte 1 di un post in due parti sulla costruzione di squadre di fantasy league. Leggi prima questo e poi leggi la Parte 2 qui.

Nota 2: Anche se il titolo dice “Fantasy Football”, il modello che descrivo di seguito può, in linea di principio, essere modificato per adattarsi a qualsiasi campionato di fantasia per qualsiasi sport.

football Recentemente sono stato contattato da diverse persone (alcuni studenti, alcuni amici) per quanto riguarda la creazione di squadre ottimali per i campionati di fantacalcio. Con la recente ondata di siti di scommesse come Fan Duel e Draft Kings, questo è diventato un multi-milioni (o dovrei dire, miliardi?) industria del dollaro. Così ho pensato di scrivere una ricetta semplice per aiutare tutti. Stiamo per usare l’analisi prescrittiva per scommettere sullo sport. Sei pronto? Facciamolo! Inizierò con il modello matematico e poi ti mostrerò come far funzionare tutto usando un foglio di calcolo.

Regole

La squadra di fantasy football regole dello stato che un gruppo deve essere composto da:

  • 1 quarterback (QB)
  • 2 running back (RB)
  • 3 wide receivers (WR)
  • 1 tight end (TE)
  • 1 kicker
  • 1 difesa

Alcune leghe hanno anche quello che viene chiamato un “flex player”, che potrebbe essere un RB, WR, o TE. Spiegherò come gestire il lettore flex qui sotto. Inoltre, i giocatori hanno un costo e la persona che crea la squadra ha un budget, chiamalo B, da rispettare (di solito B è 5 50,000 o $60,000).

I dati

Per ogni giocatore i, ci viene dato il costo di cui sopra, chiamarlo c_i, e un punto di proiezione p_i. Quest’ultima è una stima di quanti punti ci aspettiamo che il giocatore segnerà in una determinata settimana o partita. Quando si tratta della difesa, anche se non sempre segna, c’è anche un modo per calcolare i punti per esso (ad esempio i punti impediti). Come vengono calcolate queste proiezioni di punti, potresti chiedere? È qui che entrano in gioco le analisi predittive. È essenzialmente una previsione. Guardi le prestazioni passate / recenti, guardi l’avversario imminente, guardi la salute dei giocatori, ecc. Ci sono siti web che forniscono queste proiezioni, oppure è possibile calcolare il proprio. Il più preciso si è a queste previsioni, più è probabile che si sono per incassare le scommesse. Qui, prenderemo questi numeri come dato.

Il modello di ottimizzazione

Le principali decisioni da prendere sono semplici: quali giocatori dovrebbero essere nella nostra squadra? Questo può essere modellato come una variabile di decisione sì/no per ogni giocatore. Quindi creiamo una variabile binaria chiamata x_i che può assumere solo due valori: è uguale al valore 1 quando il giocatore i è nella nostra squadra, ed è uguale al valore zero quando il giocatore i non è nella nostra squadra. Il valore di i (l’ID giocatore) varia da 1 al numero totale di giocatori a nostra disposizione.

Il nostro obiettivo è quello di creare una squadra con il più grande valore aggregato possibile di punti proiettati. Cioè, vogliamo massimizzare la somma delle proiezioni di punti di tutti i giocatori che includiamo nella squadra. Questa formula simile a questo:

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

La formula di cui sopra funziona, perché quando un giocatore della squadra (x_i=1), la sua p_i viene moltiplicato per uno e viene aggiunto alla somma, e quando un giocatore non fa la squadra (x_i=0) la sua p_i viene moltiplicato per zero e non vengono aggiunti alla somma finale. Il meccanismo che ho appena descritto è l’idea principale alla base di ciò che rende tutte le formule in questo modello funzionano. Per esempio, se il punto di previsioni per i primi 3 giocatori sono 12, 20 e 10, la massimizzazione della funzione di start come: \max 12x_1 + 20x_2 + 10x_3 + \cdots

Il vincolo di bilancio può essere scritto dicendo che la somma dei costi di tutti i giocatori della nostra squadra deve essere minore o uguale al nostro budget B, come questo:

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

Per esempio, se i primi 3 giocatori del costo 9000, 8500, e 11000, e il nostro budget è di 60.000, la formula sarà simile a questa:  9000x_1 + 8500x_2 + 11000x_3 + \cdots \leq 60000.

Per far rispettare che la squadra ha il giusto numero di giocatori in ogni posizione, lo facciamo posizione per posizione. Ad esempio, per richiedere che la squadra abbia un quarterback, scriviamo:

\displaystyle \ sum_ {\text {all }i \ text{ che sono quarterback}} x_i = 1

Per richiedere che la squadra abbia due running back e tre wide receiver, scriviamo:

\displaystyle \ sum_ {\text{all }i \ text{ che esegue i back}} x_i = 2

\displaystyle \ sum_ {\text{all }i \ text{ che sono wide receiver}} x_i = 3

I vincoli per le posizioni rimanenti sarebbero:

\displaystyle \sum_{\text{tutti } i \text{ che sono tight ends}} x_i = 1

\displaystyle \sum_{\text{tutti } i \text{ che sono kickers}} x_i = 1

\displaystyle \sum_{\text{tutti } i \text{ che sono difese}} x_i = 1

Il Curioso Caso di Flex Player

flex giocatore aggiunge un tocco interessante a questo modello. È un giocatore che, se ho capito bene, prende il posto del kicker (il che significa che non avremmo il vincolo del kicker sopra) e può essere un RB, WR o TE. Pertanto, subito, abbiamo una nuova decisione da prendere: che tipo di giocatore dovrebbe essere il flex? Creiamo tre nuove variabili sì / no per rappresentare questa decisione: f_ {\text{RB}},  f_{\text{WR}}e f_{\text{TE}}. Queste variabili significano, rispettivamente: è il flex RB?, è il flex WR?, ed è il flex TE? Per indicare che solo una di queste cose può essere vera, scriviamo il vincolo di seguito:

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

Inoltre, avere un lettore flex equivale ad aumentare il lato destro dei vincoli che contano il numero di RB, WR e TE di uno, ma solo per uno di questi vincoli. Raggiungiamo questo obiettivo modificando questi vincoli dal formato che avevano sopra al seguente:

\displaystyle \sum_{\text{tutti } i \text{ che sono in esecuzione effettua}} x_i = 2 + f_{\text{RB}}

\displaystyle \sum_{\text{tutti } i \text{ che sono wide receivers}} x_i = 3 + f_{\text{WR}}

\displaystyle \sum_{\text{tutti } i \text{ che sono tight ends}} x_i = 1 + f_{\text{TE}}

si noti che, poiché uno solo dei f variabili può essere uguale a 1, solo uno dei tre vincoli di cui sopra avrà la sua destra è aumentato dal valore originale di 2, 3 o 1.

Altri potenziali requisiti

A causa di preferenze personali, informazioni privilegiate o altre considerazioni esoteriche, si potrebbe voler includere altri requisiti in questo modello. Ad esempio, se voglio la squadra migliore che include il giocatore numero 8 ed esclude il giocatore numero 22, devo semplicemente forzare la variabile x del giocatore 8 per essere 1 e la variabile x del giocatore 22 per essere zero. Un altro vincolo che può tornare utile è dire che se il giocatore 9 è nella squadra, anche il giocatore 10 deve essere nella squadra. Ciò è ottenuto da:

 x_9 \leq x_{10}

Se volevi il contrario, cioè se il giocatore 9 è nella squadra, allora il giocatore 10 NON è nella squadra, scriveresti:

x_9 + x_{10} \leq 1

Sono possibili anche altre condizioni in questo senso.

Mettere tutto insieme

Se tu fossi abbastanza paziente da restare con me fino a qui, sei desideroso di mettere questa matematica al lavoro. Facciamolo usando Microsoft Excel. Inizia scaricando questo foglio di calcolo e aprendolo sul tuo computer. Ecco cosa contiene:

  • Colonna A: elenco dei nomi dei giocatori.
  • Colonna B: sì / no decisioni per se un giocatore è nella squadra (queste sono le variabili x che il Risolutore di Excel calcolerà per noi).
  • Colonne da C a H: flag che indicano se un giocatore è o meno di un determinato tipo (0 = no, 1 = sì).
  • Colonne I e J: le proiezioni dei costi e dei punti per ogni giocatore.

Ora scorri verso il basso in modo da poter vedere le righe da 144 a 150. Le celle nella colonna B sono attualmente vuote perché non abbiamo ancora scelto quali giocatori aggiungere alla squadra. Ma se queste scelte fossero state fatte(cioè, se avessimo riempito la colonna B con 0 e 1), moltiplicando la colonna B con la colonna C in modo da cella e aggiungendo tutto ti direbbe quanti quarterback hai. Ho incluso questa moltiplicazione nella cella C144 usando la formula SUMPRODUCT. In modo simile, le celle D144: H144 calcolano quanti giocatori di ogni tipo avremmo una volta che le celle nella colonna B ricevono valori. I calcoli del costo totale del team e dei punti totali previsti per il team sono analoghi ai calcoli precedenti e utilizzano anche la formula SUMPRODUCT (vedere celle I144 e J144). Puoi provare a scegliere alcuni giocatori a mano (mettendo 1 in alcune celle della colonna B) per vedere come cambieranno i valori delle celle nella riga 144.

Se ora apri la finestra del risolutore di Excel (nella scheda Dati, se il componente aggiuntivo del risolutore è attivo), vedrai che ho già impostato l’intero modello per te. Se non hai mai usato Excel Solver prima, il seguente video in due parti ti farà iniziare con esso: parte 1 e parte 2.

La cella obiettivo è J144, ed è quello che vogliamo massimizzare. Le variabili (ovvero le celle che cambiano) sono le selezioni del giocatore nella colonna B, più le decisioni di tipo flex-player (celle D147:F147). I vincoli dire che: (1) il numero effettivo di giocatori di ogni tipo (C144:H144) sono uguali per il numero desiderato di ogni tipo (C146:H146), (2) il costo totale della squadra (I144) non superare il budget (I146), (3) le tre flex-giocatore binario variabili di aggiungere fino a 1 (D150 = F150), e, (4) tutte le variabili del problema sono binari. (Ho impostato il numero richiesto di kicker nella cella G146 a zero perché stiamo usando l’opzione flex-player. Se puoi avere sia un giocatore flex che un kicker, digita un 1 nella cella G146.) Se fai clic sul pulsante “Risolvi”, vedrai che la risposta migliore è una squadra che costa esattamente $50.000 e ha un valore totale del punto proiettato di 78.3. Il suo giocatore flex ha finito per essere un RB.

Questo modello è abbastanza piccolo da poterlo risolvere con la versione gratuita per studenti di Excel Solver (che viene fornita di default con qualsiasi installazione di Office). Se ti capita di avere più giocatori e il tuo numero totale di variabili supera i 200, il risolutore gratuito non funzionerà. Ma non disperate! Esiste un grande risolutore add-in per Excel che è anche gratuito e non ha limiti di dimensione. Si chiama OpenSolver e funzionerà con la stessa identica configurazione che ho qui.

Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.