Взрывной рост и распространение легализованных ставок на спорт в Соединенных Штатах побудили многих проявить (или возобновить) интерес к более количественной методологии, основанной на данных, для прогнозирования результатов спортивных событий.

Введение в моделирование Монте-Карло

Исторически сложилось так, что любой оператор букмекерской конторы, генерирующий свои собственные коэффициенты (в отличие от простого копирования рынков bet365 или Pinnacle) или публикующий прогнозируемые вероятности выигрыша в реальном времени (например, ESPN Gamecast), делал это с помощью некоторой формы стохастического моделирования, чаще всего Монте-Карло моделирование. Это метод итеративной оценки детерминированной модели с использованием наборов недетерминированных (то есть случайных) чисел в качестве входных данных.

Чтобы убедиться, что мы все понимаем, что это означает в данном конкретном контексте, предположим, я спросил, какова вероятность выпадения 1 при одном броске шестигранной кости. Вы, вероятно, знаете, что сразу будет 1/6 или примерно 16,7%. Однако для менее ориентированных на количественные показатели мы могли бы:

  1. Бросьте шестигранный кубик, возможно, 100000 раз
  2. Подсчитайте все результаты
  3. Преобразуйте их в частоты
  4. А затем скажите, что, учитывая наш достаточный размер выборки, мы достаточно уверены в том, что частота, с которой каждый результат имел место во время нашего испытания, является индикатором или прогнозом частоты, с которой он будет происходить в будущем.

Конечно, никто не собирается бросать кубик 100000 раз и не может делать это независимо и одинаково распределенным образом (iid). К счастью, все ваши любимые программы для работы с электронными таблицами и языки программирования позволяют делать это много-много раз, очень и очень быстро. Вы можете увидеть синтаксис для одной итерации в Excel и Python под рисунком выше, просто для иллюстрации.

Пример: янки против Red Sox (29 июня 2019 г.)

Как это применимо к спорту? Вы не поверите, но большинство шансов, вероятностей выигрыша и прогнозов очков генерируются путем моделирования матчей между командами или игроками именно таким образом. Мы можем проиллюстрировать это на примере матча между New Yankees и Boston Red Sox, который состоялся на Лондонском стадионе в Соединенном Королевстве 29 июня 2019 года. Если вы хотите следовать за собой или поиграть вокруг себя, вы можете скачать макрос -включенная книга Excel здесь.

Шаги:

  1. Я сначала вытащил журналы игр Yankees и Red Sox за регулярный сезон до этого момента с baseball-reference.com.
  2. Затем я подсчитал среднее количество пробежек, которые каждая команда забила за игру до этого момента.
  3. Я также включил, сколько прогонов эти команды разрешили за игру.
  4. Затем я применил очень распространенную трансформацию, призванную учесть тот факт, что с учетом атакующих результатов любой команды качество защиты противника будет влиять на вероятность, с которой вы ожидаете, что они будут действовать на определенном уровне. Мы будем считать это значение нашим средним (μ) в будущем.
  5. Мы, конечно же, захотим включить стандартное отклонение или изменчивость в результативность наступления. В более надежной модели мы могли бы рассмотреть возможность применения такой же корректировки к нашему стандартному отклонению, как и к нашему среднему значению. Теоретически, вариативность забегов команды должна влиять на вариативность ожидаемых бегов против, а также на вариативность в забегах против команды. должны влиять на вариабельность ожидаемого количества забегов.
  6. Затем мы будем использовать обратную функцию кумулятивной функции нормального распределения, которая принимает 3 параметра:

Поздравляем, теперь мы «смоделировали» матч между Янки и Ред Сокс, в котором Янки выиграли со счетом от 10,147 до 7,945.

Однако, как и в случае с нашим примером с игральными костями, мы хотим запустить эту симуляцию не один раз, а, возможно, 10 000 раз:

Наконец, мы можем рассчитать частоту, с которой каждый раз выигрывал в наших смоделированных матчах, и преобразовать или сравнить их с коэффициентами для целей ставок.

Команда, которая выиграет с вероятностью 53,8%, будет представлена ​​с коэффициентом -116 (1,86 для читателей из других стран), в то время как ее коллега с вероятностью победы 46,3% будет представлена ​​с коэффициентом +116 (2,16). При применении стандартного сока это, вероятно, попадет на рынок в Yankees -129, Red Sox +107.

Если вы заметили, что две вероятности в сумме составляют 100,1%, то это только из-за округления для этого рисунка.

Рынок на bet365 открылся на отметках Yankees -135, Red Sox +114, что довольно близко к тому, что предлагалось до сих пор в нашей очень примитивной модели, хотя, возможно, здесь повезло. На данный момент еще рано говорить, но скептицизм часто бывает разумной точкой зрения.

Заглядывать под капот

Эта тактика сначала создания математического представления события, а затем повторения его снова и снова является стандартной частью инструментария любого специалиста по данным и используется для составления прогнозов, с которыми вы могли бы регулярно взаимодействовать. Прогнозы погоды и экономические прогнозы - два очень распространенных примера, но для некоторых не совсем интуитивно понятно, почему этот метод вообще эффективен. Если это вас не описывает, прокрутите страницу вниз до раздела Преимущество домашнего поля.

Мы помним из статистики, что нормально распределенные наборы данных следуют колоколообразной кривой, под которой можно найти определенную долю значений на заданном расстоянии от среднего.

Используя только среднее значение и стандартное отклонение любого нормального распределения, мы можем построить диаграмму, подобную приведенной выше. В контексте модели, которую мы построили до сих пор, эту диаграмму можно интерпретировать как вероятность того, что янки (или команда, статистически идентичная янки) забьют любое количество пробежек против Red Sox (или команды статистически идентичен Red Sox). Поскольку нормальные распределения симметричны относительно среднего, мы бы сказали, что существует:

  • 50% шанс выиграть до 5,142 трассы
  • 50% + 34,1% = 84,1% очков до 8,143 пробежек
  • 50% - 34,1% = 15,9% шанс выиграть до 2,141 пробега

Вы заметите, что в случае с янки на данный момент в 2019 году перемещение двух стандартных отклонений влево от среднего дает прогноз с отрицательной оценкой (-0,860). Мы вернемся к этому на мгновение.

Когда мы строили нашу симуляцию, мы использовали обратную кумулятивную функцию нормального распределения вместе с 3 параметрами. Сама кумулятивная функция нормального распределения показывает для данного распределения и значения x вероятность того, что случайно выбранное значение меньше x. Другими словами, какой процент данных находится слева от x. Последний способ усвоить это, который имеет значение здесь, - представить себе выбор значения x вдоль оси x-, а затем вопрос, какова вероятность того, что случайно выбранная точка под кривая будет слева от этого значения x.

Обратное к этой функции делает… обратное. Он позволяет нам вводить распределение (параметризованное средним и стандартным отклонением) и процент или вероятность, а затем выдает в качестве вывода значение x, для которого предоставленный процент данных падает влево.

Процент или вероятность, которые мы предоставляем, в данном случае в Excel, исходит от (псевдо) генератора случайных чисел, который выводит значение больше или равное 0 и меньше 1, математически обозначенное как [0,1). Когда моделирование было запущено для построения этих графиков, это случайное значение, созданное Excel для янки, составило ~ 0,95234.

Одна интерпретация этого заключается в том, что для колоколообразной кривой, представляющей распределение со средним значением 5,142 и стандартным отклонением 3,001, 95,234% значений попадают влево от 10,147. Другими словами, янки (или команда, статистически идентичная янки) забьют 10,147 или меньше ранов против Red Sox (или команды, статистически идентичной Red Sox) в 95,234% матчей.

Пока выполняется предположение о нормальном распределении, итеративное использование случайных значений от 0 до 1 для генерации смоделированных оценок для каждой команды даст нам хорошее приближение того, как параметризованная игра, вероятно, будет разыгрываться (надеюсь). Для других видов спорта и событий нормальное распределение может быть не идеальным. Для видов спорта с очень низкими показателями, таких как футбол, может быть более разумным использовать распределение Пуассона или отрицательное биномиальное распределение для моделирования игры, а не нормальное распределение.

В этом конкретном случае, как кратко упоминалось ранее, можно получить отрицательное число подсчитанных запусков. Для целей модели, которую мы строим, мы будем использовать логику, которая преобразует любые отрицательные оценки в оценку 0,000. Это место, где мы видим, как искусство моделирования действительно сливается с наукой. Возможно, смоделированная оценка Янки: -4, Ред Сокс: -3 столь же информативна, как смоделированная оценка Янки: 5, Ред Сокс: 6. Или, возможно, кто-то хочет полностью удалить весь симулированный матч в случае, если любая из команд дает результат, который был бы невозможен в реальном мире. Оглядываясь на мгновение назад, мы видим, что это не единственный аспект нашей модели, который оставляет место для творчества, а также для ошибок. Мы не принимали во внимание травмы, импульс, погоду, размеры стадиона, количество стартовых питчеров и множество других важных данных, которые могут повлиять на наши прогнозы.

Часто один из лучших способов научиться строить модели - это начать с минимально жизнеспособного продукта, а затем постепенно добавлять и масштабировать его. В этом случае мы сначала рассмотрим включение преимущества домашнего поля как особенности нашей модели.

Преимущество домашнего поля

В регулярном сезоне MLB 2018 команда хозяев выиграла 1277 игр (52,6%), а команда гостей выиграла 1149 игр (47,4%). Таким образом, кто-то, строящий модель в сезоне 2019 года, может приписать дополнительную вероятность выигрыша в 2,6% команде, играющей дома, при прочих равных.

Это не домашняя игра Red Sox, как в Лондоне, на нейтральной площадке, но предположим, что это было так. Одним из вариантов было бы использовать в первую очередь только данные о забегах и забегах против домашних игр Red Sox и выездных игр Yankees, так что никаких дополнительных изменений вносить не нужно. В некоторых случаях это был бы жизнеспособный подход, хотя мы можем нерешительно думать, что это один из них, особенно из-за ограничивающего фактора, который он имеет при и без того небольшом размере выборки.

Предположим, наше исследование показало, что при прочих равных можно ожидать, что преимущество домашнего поля добавит 0,32 ожидаемых пробега к результату команды с поправкой на качество защиты соперника. Это особенно легко включить в нашу модель, просто добавив 0,32 к Adj. Забитые удары для команды с преимуществом домашнего поля.

Это происходит до того, как значение будет передано в качестве параметра функции, обратной кумулятивной функции нормального распределения (NORM.INV на языке Excel), поэтому дальнейшие корректировки не требуются. То же самое можно сказать и о любом факторе, который добавляет или вычитает указанный абсолютный вклад в ожидаемый результат или из него. Например, если конкретная команда набирает на 0,73 очков в играх сразу после полета по пересеченной местности, и игра, которую мы пытаемся смоделировать, соответствует этим критериям, ее будет очень легко включить в моделирование.

В нашем случае ни одна из команд не имела преимущества на домашнем поле, поэтому мы не будем использовать такой фактор, но это все же вариант, который можно включить в нашу модель Excel.

Ансамблевой подход к моделированию

Мы можем не только скорректировать нашу модель с учетом таких факторов, как преимущество домашнего поля, но мы также можем наложить другие методологии, чтобы использовать более ансамблевой подход к моделированию, в результате чего несколько разных моделей и / или наборов данных используются для прогнозирования одного и того же результата.

Например, Билл Джеймс и SABR опубликовали формулу для расчета вероятностей победы в очных матчах MLB, основанную исключительно на процентах побед. Это умный вывод, который стоит прочитать, и он дает следующее:

В нашем случае процент выигрышей у Янки и Ред Сокс составил:

По этой формуле мы имеем:

На данный момент у нас есть вероятность победы для каждой команды из нашего моделирования Монте-Карло ...

… Который может включать или не включать преимущество домашнего поля в качестве фактора и другую вероятность выигрыша для каждого раза из формулы SABR:

Мы могли просто присвоить им одинаковые веса, например:

Однако мы можем захотеть применить любое количество других подходов к взвешиванию этих двух значений. Возможно, будет полезно провести историческое исследование. В качестве альтернативы, мы могли бы протестировать несколько разных весов на других матчах.

Использование генераторов случайных чисел (ГСЧ)

Мы увидели силу использования генераторов случайных чисел для аппроксимации будущих вероятностей, но мы также можем использовать очень похожую технику для обнуления идеальных весов, если у нас есть цель. Одна из таких целей наиболее точно отражала бы исходную линию bet365, которая была Янки -135, Ред Сокс +114. Без такой цели, как можно было бы вообще определить, что значит связать «идеальный» вес с заданной вероятностью?

Нам необходимо внести поправку на виг или преимущество дома, поскольку это не имеет ничего общего с прогнозируемым результатом самой игры, а больше связано с управлением рисками и финансовой моделью оператора.

Один из способов сделать это - удалить преимущество казино из линии bet365, чтобы найти справедливые шансы и преобразовать их в вероятности:

… А затем найти веса,

… Такие, что:

Другой вариант, которым мы займемся ради объяснения, - это вычисление преимущества казино bet365 ...

… И используйте этот коэффициент, чтобы добавить веса к справедливым шансам, полученным с помощью нашей модели, а затем настройте веса так, чтобы эти справедливые коэффициенты, однажды скорректированные преимуществом казино bet365, сходились с фактическими начальными линиями bet365.

Мы начинаем с использования того же генератора случайных чисел из нашего моделирования Монте-Карло, в Excel это = RAND (), который, как мы помним, производит случайное значение в диапазоне [0,1). Мы присвоим весу случайное значение…

… Что умножит нашу вероятность выигрыша по методу Монте-Карло…

… А затем присвоить 1 минус это значение…

… К весу наших вероятностей выигрыша на основе SABR:

Для нашей первой итерации или испытания мы произведем одну предполагаемую вероятность выигрыша для янки:

… И один для Red Sox:

Как только мы сгенерируем другие случайные числа, чтобы получить пары вероятностей вероятностей выигрыша,

… Мы доработаем утяжеление.

В целях аналитической гигиены мы должны быстро проверить это для любого испытания n,

Если нет, мы должны выяснить, что пошло не так, прежде чем продолжить.

На этом этапе мы хотим преобразовать наши вероятности в справедливые шансы и начнем с десятичной формы для простоты, поскольку первоначальное преобразование довольно простое.

Более сложный и часто менее интуитивный шаг связан с добавлением преимущества казино, что мы сделаем перед преобразованием в американские коэффициенты.

Это было бы идеальным моментом для тех, кто не понимает, как рассчитывается преимущество казино (также известное как vig, vigorish или сок) и как оно соотносится с overround, а также что каждый может быть использован для вычислений. Любой, кто заинтересован в глубоком погружении, может сделать паузу и прочитать эту статью, которая предоставит вам идеальное место, чтобы сразу же вернуться в это самое место.

Учет преимущества

Если вы просто ушли, чтобы прочитать подробное погружение (или сделать что-нибудь еще, если на то пошло), добро пожаловать обратно. Теперь мы хотим применить преимущество казино bet365 или vig к нашим десятичным коэффициентам, которые затем конвертируем в американские коэффициенты и сравниваем с их исходным рынком.

Напомним, коэффициенты открытия Янки -135, Ред Сокс +114. Мы можем преобразовать в предполагаемые вероятности следующим образом:

И затем суммируйте их, чтобы получить наш путевой участок (𝕆). На самом деле это все, что нам нужно:

После того, как мы разделим наши справедливые шансы на оверраунд (𝕆), мы увидим их отражение, как если бы bet365 применила свое преимущество казино к вероятностям, созданным нашей моделью.

В качестве напоминания о том, где мы находимся в этой таблице, прежде чем показывать эти последние четыре вычисления:

На данный момент нам просто нужно преобразовать десятичные коэффициенты в американские. Мы обозначим американские коэффициенты, полученные на n-й итерации, как:

Как и в случае преобразования между предполагаемыми вероятностями и американскими шансами, здесь нам понадобятся два отдельных уравнения, одно для фаворита, а другое для проигравшего. Общие формы следующие:

Таким образом, мы имеем:

Чтобы сделать шаг назад и подвести итоги того, что мы уже сделали:

Во-первых, мы использовали наше моделирование Монте-Карло и формулу SABR, чтобы сгенерировать две вероятности победы для обеих наших команд:

Затем мы приступили к поиску весов,

... которые, если их применить к соответствующим вероятностям выигрыша, будут наиболее близки к тем, которые подразумеваются начальными шансами bet365,

Мы решили повторить несколько попыток нахождения правильных весов. В первом испытании мы использовали генератор случайных чисел для получения значений для

… Для получения первой пары взвешенных вероятностей выигрыша:

Затем они были преобразованы в десятичные коэффициенты, к которым было применено преимущество казино в ходе нашего обсуждения оверраунд (𝕆), прежде чем окончательно преобразовать в американские коэффициенты.

На этом этапе мы хотим повторить этот процесс произвольно большое количество раз, N. Окружение 10⁴ ‹N‹ 10⁵ кажется примерно правильным для этого варианта использования, размера выборки и количества функций, но мы будем использовать 10³, чтобы сделать наш файл достаточно маленьким, чтобы каждый мог его загрузить и воспроизвести. с участием.

Мы можем быстро собрать некоторую сводную статистику:

Поскольку мы определили:

… Мы знаем, что веса идеально коррелированы, и поэтому только один из них требует проверки в нашем анализе.

Если мы отсортируем нашу пробную таблицу по американским шансам, к которым было применено преимущество казино, мы сможем сосредоточиться на тех, которые давали коэффициенты в более узком диапазоне (т. Е. Ближе к нашему желаемому результату). Возможно, например, мы хотим сосредоточиться на весах, которые давали шансы на денежную линию янки между -130 и -140 включительно. Когда мы это сделаем и пересчитаем нашу сводную статистику, мы увидим следующее:

Мы быстро замечаем, что значения в диапазоне

… Производить то, что мы ищем.

Напомним, что = RAND () производит значения больше или равные 0 и меньше 1. Теперь мы знаем, что нас интересует только около 25% этого диапазона, и, следовательно, мы должны тратить впустую некоторые нашей драгоценной вычислительной мощности и драгоценного времени.

Итак, теперь мы хотим повторить этот процесс снова, но вместо того, чтобы использовать генератор случайных чисел, который выдает веса от 0% до 100%, давайте воспользуемся генератором, который выдает только веса от 69% до 93% включительно.

Когда дело доходит до целых чисел, это всегда просто, не только в Excel, но и во многих распространенных языках программирования. В Excel, например, если нам нужны случайные целые числа от 69 до 93, мы должны использовать функцию = RANDBETWEEN (69,93). К сожалению, для десятичных значений нам нужна немного более сложная функция.

Одним из распространенных методов генерации случайных десятичных значений между X и Y является использование

… Который вернет X, когда RAND () = 0, вернет Y, когда RAND () = 1, и значения между ними в противном случае. Хотя этот синтаксис специфичен для Excel, аналогичный обходной путь обычно применим к большинству языков программирования.

Для наших целей мы снова сгенерируем 10³ (или 10⁴ или 10⁵) случайных значений, но все они будут между 0,69 и 0,93:

Мы можем продолжать этот процесс, пока не почувствуем, что у нас достаточно узкий диапазон. В Excel мы можем использовать функцию Фильтр, чтобы выбрать только те строки, где денежная линия Янки составляет -135, а также где денежная линия Бостона равна 114. Это быстро сжимает наш диапазон и позволяет нам отточить наш оптимальный вес.

Мы быстро видим, что на самом деле ...

На данный момент, учитывая ограничения этой сильно упрощенной модели, мы должны быть довольны нашим прогрессом. Следующие шаги будут включать бэктестинг, торговлю на бумаге, анализ чувствительности и, конечно же, добавление дополнительных функций.

Еще один популярный аналитический метод, основанный только на оценках выполнений и расчетов против данных, называется ожиданием Пифагора, в котором говорится, что:

Я заложил основу для добавления этой функции в модель, но оставил тяжелую работу всем, кто хочет поиграть.

Автоматизация и машинное обучение

Если процесс итеративного создания массивов случайных чисел и ручного сужения их диапазона кажется обременительным и подверженным человеческой ошибке, вы не одиноки. Причина, по которой я решил посвятить свое время написанию и попросить вас потратить свое время на чтение этого раздела, заключается в том, что эта структура и подход очень похожи на способ, которым инженеры по машинному обучению создают искусственные нейронные сети, даже если они существенно упрощены. В частности, это начинает напоминать градиентный спуск, метод оптимизации, лежащий в основе большей части структуры машинного обучения.

Чтобы понять, насколько мощна автоматизация процесса, подобного тому, который мы только что прошли, особенно перед лицом постоянно увеличивающихся наборов данных, мы можем использовать надстройку Excel под названием Solver. Решатель не является формой машинного обучения как таковой, но, безусловно, представляет собой форму автоматизации, которая использует методы оптимизации, на которых построены многие механизмы машинного обучения.

Если вы не видите Solver в качестве параметра на панели инструментов Excel, возможно, вам придется быстро включить его вручную, перейдя в Файл ›Параметры› Надстройки и выбрав «Надстройки Excel» » рядом с « Управление » перед нажатием Go, а затем установите флажок рядом с надстройкой Solver

Я создал макрос и назначил его кнопке, которая запускает для нас Solver, но мы также можем сделать это вручную. Обычно пользователь переходит к Data ›Solver и затем видит следующее окно:

Мы можем установить нашу цель как «Американские шансы с соком» для New York Yankees в этой рабочей тетради, расположенной по адресу H3 на листе Master. Мы установим его на ValueOf -135, что является начальным американским коэффициентом на рынке bet365, для которого мы оптимизировали. Наконец, мы сделаем это, изменив ячейку переменной D9, которая представляет собой вес, помещаемый в выходные данные моделирования Монте-Карло.

Читатель, ориентированный на детали, может спросить, как обстоят дела с различными методами решения, доступными в раскрывающемся списке, в настоящее время занятым «GRG Nonlinear», и это было бы изрядным любопытством для изучения. Надстройка Solver фактически включает три подхода к оптимизации в зависимости от характера решаемой проблемы. Как правило, варианты использования следующие:

  • GRG Nonlinear - чаще всего используется для гладких, нелинейных задач; находит локальные оптимальные решения.
  • Simplex LP - обычно используется для решения линейных задач.
  • Эволюционный - используется при решении сложных, негладких, нелинейных задач.

Для наших целей, с этим конкретным набором данных и моделью, вероятно, будет небольшая заметная разница, и GRG Nonlinear должен работать почти так же, как Simplex LP. По мере того, как мы масштабируем и строим нашу модель, нам может потребоваться ее переоценка, если мы хотим продолжать использовать решатель. Тем не менее, это должно помочь проиллюстрировать ценность начала автоматизации самого процесса оптимизации.

Машинное обучение - это структура, частью которой являются нейронные сети. Используя их, мы можем обучить модель, подобную той, которую мы построили, которая способна просматривать десятки тысяч совпадений и учитывать сотни или тысячи различных функций, а также автономно выполнять итерацию процесса, чтобы найти значение весов для наших две модели вероятности выигрыша и любые другие переменные, которые не только дают желаемый результат для этого события, но и для как можно большего числа в пределах пространства решений.

Машинное обучение быстро меняет все аспекты прогнозной аналитики и покоряет игровую индустрию. Для установления шансов используются не только количественные модели, но и для управления рисками, контроля KYC / AML, ответственной игры и множества других функций. Это все области, в которых опыт использования инструментов искусственного интеллекта в сочетании со знаниями индустрии спортивных игр становится все более ценным.

Примечание для болельщиков и обычных игроков

В течение следующих нескольких лет быстрорастущее число любителей спорта будет хотеть, чтобы аналитика и исследования играли все более важную роль в их ставках на спорт, фэнтези-спорте и других подобных видах поведения. Использование подхода, основанного на данных, не только дает возможность идентифицировать прибыльные модели, но также является самым мощным инструментом, позволяющим оставаться дисциплинированным и удерживать эмоции от процесса принятия решений.

Любой, кто уже пытался это сделать, скажет вам, что это очень, очень, очень сложно. Даже в мире сложных математических задач, которые часто решают количественные аналитики, чрезвычайно сложно создать модель, которая предсказывает спортивные события с большей точностью, чем модели, которые десятилетиями совершенствовались в Вегасе, Лондоне и других местах. По этой, среди прочих причин, мы должны проявлять крайнюю осторожность, когда кто-то пытается рекламировать систему, в рамках которой мы платим им за выборки, произведенные их моделью. Я подробно обсуждал этот вопрос в разоблачении, которое я написал об особо известной организации, занимающейся подобным бизнесом, которая с тех пор оказалась довольно впечатляющей неудачей, по крайней мере, отчасти потому, что трудности, которую мы здесь обсуждаем.

Ряд технологических компаний решили извлечь выгоду из бизнес-возможностей, представленных этой динамикой, не только предлагая потребителям более доступную платформу для проведения таких исследований, но и предоставляя операторам букмекерских контор механизмы для связи с потенциальными клиентами, которые находятся гораздо дальше воронка конверсии, чем у среднего спортивного фаната.

Грядущее десятилетие должно стать временем невероятного роста, инвестиций и инноваций на рынке спортивных игр США, и аналитика, вероятно, пронизывает каждый угол этой траектории.