Делайте разумные ставки: прогнозирование счета футбольного матча с использованием распределения Пуассона

08.09.2021

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

Знакомство с Пуассоном

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

Предположим, ваш друг говорит, что в среднем за игру забивают 2 гола, ну, он прав? Если верно, то каковы реальные шансы увидеть два гола в матче? Здесь нам на помощь приходит распределение Пуассона, помогающее нам найти вероятность наблюдения n событий (читай n целей) в фиксированный период времени, учитывая, что мы обеспечиваем его с ожиданием наступления событий (среднее количество событий за период времени). Посмотрим математически один раз

(где λ= среднее количество событий за период времени)

Шансы на выигрыш

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

код:

Давайте начнем с определения средних целей, которых мы можем ожидать в течение 90 минут.

Для этого я создал отдельный набор данных, отфильтровывающий данные для матчей, сыгранных в 21 веке (2000-2020), и добавил home_score и away_score, чтобы узнать общее количество. гола, происходящего в каждом матче, а затем взяли среднее значение столбца общего количества голов, чтобы получить среднее количество голов, которое мы можем ожидать в матче.

код:

2,744112130054189

Теперь, поместив это ожидание в формулу распределения Пуассона, давайте посмотрим, каковы реальные шансы увидеть 3 гола в матче.

Вау, шанс всего 22%. Построим график вероятностей того, что нет. голов в матче, чтобы получить лучшую картину.

Теперь, исходя из этого, мы можем рассчитать вероятность увидеть `` x '' или меньшее количество голов, просто сложив вероятности `` x '' и числа, которые меньше `` x ''. И, просто вычтя это из 1, мы можем получить вероятность увидеть больше "x" голов в матче. Построим и это.

Ожидание окончено…

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

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

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

Прогнозирование счета

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

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

HS = Среднее количество голов, забитых хозяевами поля за всю историю.

AS = Среднее количество голов на выезде, забитых командой гостей за всю историю.

HC = Среднее количество голов, пропущенных в домашних матчах командой хозяев поля.

AC = Среднее количество голов, пропущенных командой гостей в выездных матчах.

Таким образом, ожидаемый результат команды хозяев будет рассчитан как (HS + AC) / 2.

Таким образом, ожидаемый результат команды гостей будет рассчитан как (AS + HC) / 2.

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

Давайте попробуем с Бразилией как хозяевами поля и Мексикой как гостями.

Распределение Пуассона дает нам прогноз на победу Бразилии со счетом 2: 0. Я поискал в сети и обнаружил, что последний матч между ними был сыгран 2 июля 2018 года, и в счете говорится, что Бразилия выиграла со счетом 2: 0. Что ж, мне повезло, а может и нет.

Вывод

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

Сергей Иващенко

08.09.2021

Подписывайтесь на наши социальные сети!