X

プライバシー&クッキー

このサイトはクッキーを使用しています。 継続することにより、あなたはそれらの使用に同意します。 Cookieの制御方法など、詳細についてはこちらをご覧ください。

わかった!

広告

注1:これはファンタジーリーグのチームを構築する上での二部のポストのパート1です。 これを最初に読んでから、ここでパート2を読んでください。

注2: タイトルには”Fantasy Football”と書かれていますが、以下で説明するモデルは、原則として、任意のスポーツのファンタジーリーグに合うように変更することができます。

football私は最近、ファンタジーサッカーリーグのための最適なチームの作成に関して何人かの人々(何人かの学生、何人かの友人)によってアプローチされてきました。 Fan DuelやDraft Kingsのような最近の賭けサイトの急増により、これは数百万人(または10億人と言うべきでしょうか?)ドル産業。 そう私は皆を助けるために私が簡単な調理法を書くことを計算した。 私たちはスポーツに賭けるために規範的な分析を使用しようとしています。 準備はいいか? これをやろう! 私は数学モデルから始めて、スプレッドシートを使用してすべてを動作させる方法を紹介します。

ルール

ファンタジーサッカーチームのルールでは、チームは次のもので構成されなければならないと述べています:

  • 1 qb
  • 2ランニングバック(RB)
  • 3ワイドレシーバー(WR)
  • 1タイトエンド(TE)
  • 1キッカー
  • 1ディフェンス

一部のリーグには、RB、WR、またはTE….. 以下、flex playerの扱い方を説明します。 さらに、プレイヤーにはコストがあり、チームを作成する人には予算があり、それをBと呼び、それを遵守します(通常Bは$50,000または6 60,000です)。

各プレイヤーiのデータ

には、上記のコストが与えられ、それをc_iと呼び、ポイント投影p_i。 後者は、与えられた週またはゲームでそのプレイヤーが得点すると予想されるポイントの推定値です。 それは防衛に来るとき、それは常に得点しませんが、それのためのポイントを計算する方法もあります(例えば、ポイントが防止されています)。 これらのポイント予測はどのように計算されますか、あなたは尋ねることができますか? ここで予測分析が有効になります。 それは本質的に予測です。 あなたは過去/最近のパフォーマンスを見て、あなたは今後の対戦相手を見て、あなたは選手の健康を見て、など。 これらの予測を提供するwebサイトがあります。,またはあなた自身を計算することができます。. あなたがこれらの予測でより正確であればあるほど、あなたは賭けに現金で現金になる可能性が高くなります。 ここでは、これらの数字を与えられたとおりにします。

最適化モデル

主な決定は簡単です:どの選手が私たちのチームにいるべきですか? これは、各プレイヤーのyes/no決定変数としてモデル化することができます。 プレイヤーiが私たちのチームにいるときは値1に等しく、プレイヤーiが私たちのチームにいないときは値ゼロに等しくなります。 i(プレイヤー ID)の値は、1から利用可能なプレイヤーの総数までの範囲です。

私たちの目的は、投影されたポイントの可能な限り最大の集計値を持つチームを作成することです。 つまり、チームに含めるすべてのプレイヤーのポイント予測の合計を最大化したいと考えています。 この式は次のようになります:

\上記の式は、プレイヤーがチームにいるとき(x_i=1)、そのp_iに1を掛けて合計に加算され、プレイヤーがチームにいないとき(x_i=0)、そのp_iにゼロを掛けらそして、最終的な合計に追加されません。 私が今説明したメカニズムは、このモデルのすべての式を機能させる主なアイデアです。 たとえば、最初の3人のプレイヤーのポイント予測が12、20、および10の場合、最大化関数は次のように始まります。\max12x_1+20x_2+10x_3+\cdots

予算制約は、チームのすべてのプレイヤーのコストの合計が予算B以下でなければならないと言うことで書くことができます。:

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

たとえば、最初の3人のプレイヤーのコストが9000、8500、および11000で、予算が60,000の場合、上記の式は次のようになります: 9000x_1+8500x_2+11000x_3+\cdots\leq60000

チームが各ポジションに適切な数の選手を持っていることを強制するために、我々はポジションごとにそれを行います。 たとえば、チームにクォーターバックがあることを要求するには、次のように書きます:

\displaystyle sum_{\text{すべての}i\text{それはクォーターバックです}}x_i xはsum sum_{\text{すべての}i\text{それはクォーターバックです}}= 1

チームが二つのランニングバックと三つのワイドレシーバーを持っていることを要求するために、我々は:

\displaystyle sum_{\text{すべて}i\text{それは実行されています}}x_i xはsum sum_{\text{すべて}i\text{それは実行されています= 2

\displaystyle sum_{\text{すべて}i\text{それは広い受信機です}}x_i xはwide sum_{\text{すべて}i\text{それは広い受信機です}}= 3

残りの位置の制約は次のようになります:

\displaystyle sum_{\text{すべて}i\text{それはタイトな終わりです}}x_i xはsum sum_{\text{すべて}i\text{それはタイトな終わりです}}= 1

\displaystyle sum_{\text{すべて}i\text{それはキッカーです}}x_i xはsum sum_{\text{すべて}i\text{それはキッカーです}}x_i x= 1

\このようにして、\\sum_{i\text{すべて}i\text{すべての}i\text{すべての}i\text{すべての}i\text{すべての}i= 1

Flex Player

の興味深いケースflex playerはこのモデルに興味深いひねりを加えています。 私が正しく理解していれば、キッカーの代わりに(上記のキッカーの制約がないことを意味します)、RB、WR、またはTEのいずれかになることができます。 したがって、すぐに、我々は作るために新しい決定を持っています:フレックスはどのような選手でなければなりませんか? この決定を表す3つの新しいyes/no変数を作成しましょう:f_{\text{RB}}f_{\text{WR}}、およびf_{\text{TE}}。 これらの変数は、それぞれ、意味:フレックスRBですか?、フレックスWRですか?、そしてflex TEはありますか? これらのことのうちの1つだけが真実であることを示すために、以下に制約を記述します:

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

さらに、flex playerを使用することは、RB、WR、およびTEの数をカウントする制約の右側を1つ増やすことと同じですが、これらの制約のうちの1つのみに対 これらの制約を上記の形式から次の形式に変更することで、これを実現します:

\displaystyle sum_{\text{すべて}i\text{それは実行されています}}x_i=2+f_{\text{RB}}fは、RB SUM_{\text{すべて}i\text{それは実行されています}}xです。}}

\displaystyle sum_{\text{すべて}i\text{それはワイドレシーバーです}}x_i=3+f_{\text{WR}}xは、\sum_{\text{すべて}i\text{それはワイドレシーバーです}}xです。}}

\displaystyle x_i=1+f_{\text{TE}}xとすると、sum x_i=1+f_{\text{TE}}xとなります。}}

f変数のうち1つだけが1に等しくなるため、上記の3つの制約のうち1つだけが、元の値2、3、または1から右側を増加させることに注意してくださ

その他の潜在的な要件

個人的な好み、内部情報、またはその他の難解な考慮事項のために、このモデルに他の要件を含めることができます。 たとえば、プレーヤー番号8を含み、プレーヤー番号22を除外する最高のチームが必要な場合は、プレーヤー8のx変数を1にし、プレーヤー22のx変数をゼロにするだけ 便利になるかもしれないもう一つの制約は、プレイヤー9がチームにいる場合、プレイヤー10もチームにいなければならないということです。 これは次のように達成されます:

x_9\leq x_{10}

あなたが反対を望んでいたならば、それはプレイヤー9がチームにいて、プレイヤー10がチームにいないならば、あなたは書くでしょう:

x_9+x_{10}\leq1

これらの線に沿った他の条件も可能である。

それをすべて一緒に置く

あなたがここまで私と一緒に固執するのに十分な忍耐強いなら、あなたはこの数学を働かせることを熱望しています。 Microsoft Excelを使ってやってみましょう。 このスプレッドシートをダウンロードし、コンピュータ上で開くことから始めます。 ここでは、それが含まれているものです:

  • 列A: プレイヤー名のリスト。
  • 列B:はい/いいえプレイヤーがチームにいるかどうかの決定(これらはExcelソルバーが計算するx変数です)。
  • 列CからH:プレイヤーが指定されたタイプであるかどうかを示すフラグ(0=no,1=yes)。
  • 列IとJ:各プレイヤーのコストとポイントの予測。

下にスクロールして、行144から150を見ることができます。 チームに追加するプレイヤーをまだ選択していないため、列Bのセルは現在空です。 しかし、これらの選択が行われていた場合(つまり、列Bに0と1を埋めた場合)、列Bに列Cをセル単位で乗算し、すべてを加算すると、クォーターバックの数 SUMPRODUCT式を使用して、この乗算をセルC144に含めました。 同様の方法で、セルD144:H144は、列Bのセルが値を受け取ると、各種類のプレーヤーの数を計算します。 チームの総チームコストと総予測ポイントの計算は、前の計算に類似しており、SUMPRODUCT式も使用します(セルI144およびJ144を参照)。 手でいくつかのプレイヤーを選んでみてください(列Bの一部のセルに1を入れて)、行144のセルの値がどのように変化するかを確認できます。

Excelソルバーウィンドウを開くと(ソルバーアドインがアクティブな場合はデータタブの下)、モデル全体が既に設定されていることがわかります。 これまでにExcel Solverを使用したことがない場合は、次の2部構成のビデオを使用して作業を開始します。: 第1部と第2部。

目的のセルはJ144であり、それが最大化したいものです。 変数(別名セルの変更)は、列Bのプレーヤーの選択に加えて、flex-playerタイプの決定(セルD147:F147)です。 制約は、(1)各タイプの実際のプレイヤー数(C144:H144)が各タイプの希望数(C146:H146)に等しく、(2)チームの総コスト(I144)が予算を超えない(I146)、(3)三つのflex-playerバイナリ変数が1まで加算される(D150=F150)、(4)問題のすべての変数がバイナリであることを示しています。 (Flex-playerオプションを使用しているため、セルG146のキッカーの必要数をゼロに設定しました。 Flex playerとkickerの両方を使用できる場合は、セルG146に1を入力するだけです。)「解決」ボタンをクリックすると、最良の答えは正確にcosts50,000の費用がかかり、合計投影ポイント値が78.3のチームであることがわかります。 ポジションはRB。

このモデルは十分に小さいので、無料の学生版のExcel Solver(Officeインストールにはデフォルトで付属)で解決できます。 プレイヤーの数が増え、変数の合計数が200を超えると、無料のソルバーは機能しません。 しかし、絶望しないでください! また、無料で、サイズ制限はありませんexcel用の優れたソルバーアドインが存在します。 それはOpenSolverと呼ばれ、私がここに持っているのとまったく同じ設定で動作します。

Articles

コメントを残す

メールアドレスが公開されることはありません。