X

soukromí & Cookies

tento web používá cookies. Pokračováním souhlasíte s jejich použitím. Další informace, včetně toho, jak ovládat soubory cookie.

Mám To!

reklamy

Poznámka 1: Toto je část 1 dvoudílného příspěvku o budování týmů fantasy league. Přečtěte si to nejprve a pak si přečtěte část 2 Zde.

Poznámka 2: Ačkoli název říká „Fantasy fotbal“, model, který popisuji níže, může být v zásadě upraven tak, aby vyhovoval jakékoli fantasy lize pro jakýkoli sport.

footballnedávno mě oslovilo několik lidí (někteří studenti, někteří přátelé) ohledně vytvoření optimálních týmů pro fantasy fotbalové ligy. S nedávným nárůstem sázkových webů, jako jsou Fan Duel a Draft Kings, se to stalo několika miliony (nebo bych měl říci, miliarda?) dolarový průmysl. Tak jsem si řekl, že napíšu jednoduchý recept, abych všem pomohl. Chystáme se použít normativní analytiku, abychom vsadili na sport. Jste připraveni? Jdeme na to! Začnu s matematickým modelem a pak vám ukážu, jak to všechno funguje pomocí tabulky.

pravidla

pravidla fantasy fotbalového týmu uvádějí, že tým musí sestávat z:

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

některé ligy mají také to, co se nazývá „flex player“, což může být buď RB, WR nebo TE. Vysvětlím, jak zacházet s přehrávačem flex níže. Kromě toho mají hráči náklady a osoba, která vytváří tým, má rozpočet, nazývejte jej B, aby se řídil (obvykle B je $50,000 nebo $ 60,000).

Data

pro každého hráče i dostáváme výše uvedené náklady, nazýváme je c_i a bodovou projekci p_i. Ten je odhadem toho, kolik bodů očekáváme, že hráč v daném týdnu nebo zápase vstřelí. Pokud jde o obranu, i když ne vždy skóruje, existuje také způsob, jak za ni vypočítat body (např. Jak se tyto bodové projekce vypočítají, můžete se zeptat? Zde vstupují do hry prediktivní analýzy. Je to v podstatě prognóza. Díváte se na minulý / nedávný výkon, díváte se na nadcházejícího soupeře, díváte se na zdraví hráčů atd. Existují webové stránky, které vám poskytují tyto projekce, nebo si můžete vypočítat vlastní. Čím přesnější jste v těchto předpovědích, tím je pravděpodobnější, že budete sázet. Tady, vezmeme tato čísla, jak je uvedeno.

optimalizační Model

hlavní rozhodnutí, která je třeba učinit, jsou jednoduchá: kteří hráči by měli být v našem týmu? To lze modelovat jako proměnnou rozhodnutí ano/ne pro každého hráče. Pojďme tedy vytvořit binární proměnnou s názvem x_i, která může mít pouze dvě hodnoty: je rovna hodnotě 1, když hráč i je v našem týmu, a je rovna hodnotě nula, když hráč i není v našem týmu. Hodnota i (ID hráče) se pohybuje od 1 do celkového počtu hráčů, které máme k dispozici.

naším cílem je vytvořit tým s co největší souhrnnou hodnotou projektovaných bodů. To znamená, že chceme maximalizovat součet bodových projekcí všech hráčů, které do týmu zahrneme. Tento vzorec vypadá takto:

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

výše uvedený vzorec funguje, protože když je hráč v týmu ( x_i=1), jeho p_i se vynásobí jedním a přidá se k součtu, a když hráč není v týmu (x_i=0), jeho p_i se vynásobí nulou a nepřidá se k konečnému součtu. Mechanismus, který jsem právě popsal, je hlavní myšlenkou toho, co dělá všechny vzorce v tomto modelu. Například, pokud jsou bodové předpovědi pro první 3 hráče 12, 20 a 10, funkce maximalizace začíná jako: \max 12x_1 + 20x_2 + 10x_3 + \ cdots

omezení rozpočtu lze napsat slovy, že součet nákladů všech hráčů v našem týmu musí být menší nebo roven našemu rozpočtu B, jako je tento:

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

pokud například první 3 hráči stojí 9000, 8500 a 11000 a náš rozpočet je 60 000, výše uvedený vzorec by vypadal takto: 9000x_1 + 8500x_2 + 11000x_3 + \ cdots \leq 60000.

Chcete-li prosadit, že tým má správný počet hráčů v každé pozici, děláme to podle pozice. Například požadovat, aby tým měl jednoho quarterbacka, píšeme:

\displaystyle \ sum_ {\text{all } i \text{ to jsou quarterbacks}} x_i = 1

Chcete-li požadovat, aby tým měl dvě běžící záda a tři široké přijímače, píšeme:

\displaystyle \ sum_ {\text{all } i \text{ které jsou spuštěny zády}} x_i = 2

\displaystyle \ sum_ {\text{all } i \text{ to jsou široké přijímače}} x_i = 3

omezení pro zbývající pozice by byla:

\displaystyle \ sum_ {\text{vše } i \text{ to jsou těsné konce}} x_i = 1

\displaystyle \ sum_ {\text{all } i \text{ to jsou kickers}} x_i = 1

\displaystyle \ sum_ {\text{all } i \text{ to jsou obrany}} x_i = 1

Zvědavý případ přehrávače Flex

přehrávač flex přidává do tohoto modelu zajímavý zvrat. Je to hráč, který, pokud správně rozumím, zaujímá místo kickeru (což znamená, že bychom neměli omezení kickeru výše) a může být buď RB, WR nebo TE. Proto hned musíme učinit nové rozhodnutí: jaký hráč by měl být flex? Vytvořme tři nové proměnné ano / ne, které budou reprezentovat toto rozhodnutí: f_{\text{RB}}, f_ {\text{WR}} a f_{\text{TE}}. Tyto proměnné znamenají: je flex RB?, je flex WR?, a je flex TE? Chcete-li naznačit, že pouze jedna z těchto věcí může být pravdivá, zapíšeme omezení níže:

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

kromě toho, mít flex přehrávač je ekvivalentní zvýšení pravé strany omezení, která počítají počet RB, WR, a TE o jednu, ale pouze pro jedno z těchto omezení. Toho dosáhneme změnou těchto omezení z výše uvedeného formátu na následující:

\displaystyle \ sum_ {\text{all } i \text{ které jsou spuštěny zády}} x_i = 2 + f_ {\text{RB}}

\displaystyle \ sum_ {\text{all } i \text{ to jsou široké přijímače}} x_i = 3 + f_{\text{WR}}

\displaystyle \ sum_ {\text{all } i \text{ to jsou těsné konce}} x_i = 1 + f_{\text{TE}}

Všimněte si, že protože pouze jedna z proměnných f se může rovnat 1, pouze jedno ze tří výše uvedených omezení bude mít svou pravou stranu zvětšenou z původní hodnoty 2, 3 nebo 1.

další potenciální požadavky

vzhledem k osobním preferencím, vnitřním informacím nebo jiným esoterickým úvahám může být vhodné zahrnout do tohoto modelu další požadavky. Například, pokud chci nejlepší tým, který zahrnuje číslo hráče 8 a vylučuje číslo hráče 22, prostě musím vynutit x proměnnou hráče 8 být 1, a X proměnná hráče 22 být nula. Dalším omezením, které se může hodit, je říci, že pokud je hráč 9 v týmu, pak hráč 10 musí být také v týmu. Toho je dosaženo:

 x_9 \ leq x_{10}

pokud jste chtěli opak, to je, pokud hráč 9 je v týmu, pak hráč 10 není v týmu, napsali byste:

x_9 + x_{10} \leq 1

další podmínky v tomto směru jsou také možné.

dát to všechno dohromady

pokud jste byli dost trpěliví, abyste se mnou vydrželi celou cestu, jste dychtiví dát tuto matematiku do práce. Udělejme to pomocí aplikace Microsoft Excel. Začněte stažením této tabulky a jejím otevřením v počítači. Zde je to, co obsahuje:

  • sloupec A: seznam jmen hráčů.
  • sloupec B: ano / ne rozhodnutí o tom, zda je hráč v týmu (jedná se o proměnné x, které pro nás Excel Solver vypočítá).
  • sloupce C až H: příznaky označující, zda je hráč daného typu (0 = ne, 1 = ano).
  • sloupce I A J: projekce nákladů a bodů pro každého hráče.

Nyní přejděte dolů, abyste viděli řádky 144 až 150. Buňky ve sloupci B jsou momentálně prázdné, protože jsme ještě nevybrali, které hráče do týmu přidáme. Ale pokud by tyto volby byly provedeny (to znamená, kdybychom vyplnili sloupec B 0 a 1), vynásobením sloupce B sloupcem C buňkovým způsobem a přidáním všeho by vám řeklo, kolik quarterbacků máte. Toto násobení jsem zahrnul do buňky C144 pomocí vzorce SUMPRODUCT. Podobným způsobem buňky D144: H144 vypočítají, kolik hráčů každého druhu bychom měli, jakmile buňky ve sloupci B obdrží hodnoty. Výpočty celkových nákladů týmu a celkových předpokládaných bodů pro tým jsou analogické s předchozími výpočty a také používají vzorec SUMPRODUCT (viz buňky I144 a J144). Můžete zkusit vybrat některé hráče ručně (vložení 1 do některých buněk sloupce B), abyste zjistili, jak se změní hodnoty buněk v řádku 144.

pokud Nyní otevřete okno aplikace Excel Solver (na kartě Data, pokud je váš doplněk Solver aktivní), uvidíte, že již mám celý model nastaven pro vás. Pokud jste nikdy předtím nepoužívali Excel Solver, následující dvoudílné video vám pomůže začít s ním: část 1 a část 2.

objektivní buňka je J144, a to chceme maximalizovat. Proměnné (také známé jako měnící se buňky) jsou výběry hráčů ve sloupci B plus rozhodnutí typu flex-player (buňky D147: F147). Omezení říkají, že: (1) skutečný počet hráčů každého typu (C144:H144) se rovná požadovanému počtu každého typu (C146: H146), (2) celkové náklady týmu (I144) nepřesahují rozpočet (I146), (3) tři binární proměnné flex-player přidávají až 1 (D150 = F150) a (4) všechny proměnné v problému jsou binární. (Nastavil jsem požadovaný počet kickerů v buňce G146 na nulu, protože používáme možnost flex-player. Pokud můžete mít jak flex přehrávač a kicker, stačí zadat 1 v buňce G146.) Pokud kliknete na tlačítko“ Vyřešit“, uvidíte, že nejlepší odpovědí je tým, který stojí přesně 50 000 dolarů a má celkovou předpokládanou bodovou hodnotu 78,3. Jeho flex player skončil jako RB.

tento model je dostatečně malý, že jej mohu vyřešit bezplatnou studentskou verzí aplikace Excel Solver (která je standardně dodávána s jakoukoli instalací sady Office). Pokud máte více hráčů a váš celkový počet proměnných přesáhne 200, bezplatný řešitel nebude fungovat. Ale nezoufejte! Existuje velký Řešitel doplněk pro Excel, který je také zdarma a nemá žádný limit velikosti. Říká se tomu OpenSolver a bude fungovat se stejným nastavením, jaké mám zde.

Articles

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.