Как работает модель Пуассона в футбольных прогнозах
Суть модели Пуассона для футбольных счетов
Футбольный матч — это серия моментов, где голы случаются редко и, по большому счёту, независимо друг от друга: забитый мяч слабо влияет на вероятность следующего в ту же минуту. Именно такие редкие и независимые события хорошо описываются пуассоновским процессом. Модель не пытается угадать сценарий игры, она оценивает итоговую интенсивность атак. Ключевой параметр здесь — ожидаемое число голов, обозначаемое греческой буквой лямбда (λ). Для домашней команды λ_хозяева выводят из их средней результативности дома и надёжности обороны гостей; для гостей — наоборот. Чем выше λ, тем вероятнее крупная победа; чем ниже — тем «суше» матч. Формула вероятности ровно k голов выглядит так: P(k) = (λ^k * e^-λ) / k!. Здесь e — константа (около 2,718), а k! — факториал. На практике это значит: подставили λ, выбрали k (0, 1, 2…) — получили вероятность.- Условный пример: λ = 1,4 для хозяев.
- P(0) = (1,4^0 * e^-1,4) / 0! ≈ 0,247 (24,7%).
- P(1) ≈ 0,345 (34,5%).
- P(2) ≈ 0,242 (24,2%).
- P(3) ≈ 0,113 (11,3%).
Оценка λ: сила атаки, защиты и домашнее поле
Сердце модели — параметр λ, среднее число голов за матч. Для хозяев и гостей он свой, и его собирают из простых множителей. Базовый темп лиги μ_base — это «средняя температура по больнице», обычно около 2,6–2,9 гола на игру в топ-чемпионатах.
Здесь A — сила атаки, D — сила защиты. Условный пример: μ_base=2,7; «Зенит» дома A=1,20, «Факел» в гостях D=0,95, γ=1,15. Получаем λ_home ≈ 2,7×1,20×0,95×1,15 ≈ 3,51. Для гостей: «Факел» A=0,85, «Зенит» дома D=0,88; λ_away ≈ 2,7×0,85×0,88 ≈ 2,02. Это ожидаемые голы, от которых строят вероятности 0,1,2…
Параметры не берут «с потолка». Их оценивают по историческим данным, обычно за 20–40 матчей, но с поправкой на календарь. Простое среднее искажает картину: игра с аутсайдером даёт всплеск, с лидером — просадку. Поэтому используют итеративные методы: начинают с μ_base и γ, затем по циклу уточняют A и D, взвешивая соперников по их текущей силе.
Ключевые ошибки — игнорировать дисквалификации, плотный график и стиль. Без двух основных центрбэков D падает на 0,05–0,10; на третий матч за 8 дней падает A. Турнирная мотивация тоже сдвигает γ: в Кубке ротация — домашний бонус почти исчезает.
Сбор и подготовка данных: окна, взвешивание, регрессия
Для стабильной оценки силы атаки и защиты берите не «последние 5 игр», а окно в 30–40 матчей команды. Старые встречи теряют актуальность, поэтому применяйте экспоненциальное затухание веса: чем дальше матч, тем слабее его влияние. Коэффициент затухания подберите на кросс-валидации, типичный ориентир — 0,92–0,96 на игру. Условный пример: гол в 10-й прошлой игре весит примерно в 0,44 раза меньше, чем в последней (при 0,94^10). Редкие события на малых выборках завышают ожидания. Применяйте регрессию к среднему: «тяните» экстремальные показатели к лиге. Для xG/голевых моментов коэффициент Шарпа (частное от стандартного отклонения и среднего) — хороший сигнал: чем он выше, тем сильнее регрессируем. Условный пример: команда забивает 2,5 xG за 90 минут на отрезке из 5 матчей — разумно «сжать» оценку к 1,6–1,8, пока объём не вырастет. Модель Пуассона считает голы, но контекст меняет интенсивность. Вводите поправки:- Удаления: после красной карточки у соперника — множитель на λ в оставшееся время (условно +15–30% на гол).
- Травмы: отсутствие ключевого бомбардира — минус 10–20% к λ атаки; системного разыгрывающего — минус 5–10%.
- Плотность календаря: 3-й матч за 8–10 дней — минус 5–12% к интенсивности, плюс ротация защиты.
- Стиль лиг: в результативных лигах дисперсия выше — слегка расширяйте доверительные интервалы; в вязких — сужайте.
| Фактор | Как учесть | Ориентир поправки |
|---|---|---|
| Красная карточка | Множитель на оставшееся время | ×1,15–1,30 к λ атаки большинства |
| Ключевая травма | Сдвиг базового λ | −0,10…−0,20 гола за 90 |
| 3-й матч за 8–10 дней | Снижение темпа | −5…−12% к λ |
От λ к вероятностям исходов и тоталов
Когда λ для хозяев и гостей посчитаны, строим матрицу счёта. Вероятность конкретного исхода P(i,j) — это произведение: вероятность i голов хозяев на вероятность j голов гостей. Для каждого клуба считаем P(k) по формуле Пуассона с его λ. Условный пример: λ_home=1.6, λ_away=1.1. Тогда P_home(2)≈0.258, P_away(1)≈0.366, значит, счёт 2:1 выпадет с вероятностью 0.258×0.366≈0.094, то есть 9.4%.
Победа, ничья или тотал — это суммы по ячейкам. Победа хозяев: суммируем все P(i,j), где i>j. Ничья: где i=j. Тотал больше 2.5: складываем вероятности всех пар, где i+j≥3. Тотал меньше 2.5: где i+j≤2. По сути это свёртка двух распределений: перебираем все комбинации и группируем по нужному правилу. Для 1.6 и 1.1 вероятность ТМ2.5 — это суммы для 0–0, 1–0, 0–1, 1–1, 2–0, 0–2.
В низовых лигах и для равных по силе «низовых» пар модель переоценивает 0–0. Лекарство — корректировка нуля. На практике уменьшают P(0) на 10–25% и пропорционально распределяют «изъятую» массу на 1–3 гола, чтобы сумма вероятностей осталась единицей. В условном примере P(0)=0.202; снизим до 0.16, а +0.042 добавим к P(1), P(2), P(3). Это поднимает шансы 1–0 и 0–1, снижает вероятность 0–0 и делает тотал чуть «верхнее» без искажения λ. Такой тюнинг особенно полезен для РПЛ‑матчей поздней осени и низовых чемпионатов, где погода и плотность календаря сушат результат. Главное — не переусердствовать: корректируйте по истории конкретной лиги, а не «на глаз».
Учёт зависимости и поправок: корреляция счёта и времени
Классический Пуассон «ломается» на счётах 0–0, 0–1 и 1–1: события в них связаны. Гол меняет рисунок, а 0–0 часто встречается реже, чем предсказывает модель. Исправляет это расширение Dixon–Coles: оно добавляет поправку ρ(λ₁, λ₂) к совместным вероятностям именно для низовых исходов. Если Пуассон даёт 8% на 0–0, а ρ=0.85, итог — 6.8%. Для 1–1 коррекция обычно повышает вероятность, потому что первый гол «притягивает» ответный. Интенсивность не стоит на месте. До первого гола λ выше, после — падает: соперник «сушит», фаворит бережёт счёт. Удобно считать через неоднородный процесс: разбить 90 минут на интервалы и задать свою λ для каждого. Условный пример: первые 30 минут λ=1.6, после раннего 1–0 на 20‑й минуте следующие 25 минут λ падает до 0.9, а при 2–0 на 70‑й — до 0.6. Итоговое распределение тотала и времени голов меняется заметно.| Сценарий | λ до события | λ после (след. 25 мин) |
|---|---|---|
| 0–0 на 30′ | 1.6 | 1.4–1.5 (осторожность) |
| 1–0 на 20′ | 1.6 | 0.8–1.0 (контроль) |
Перевод вероятностей в коэффициенты и поиск валуя
Получив вероятности исходов из Пуассона, переводим их в «честные» котировки: делим единицу на вероятность. Если модель даёт 50% на победу хозяев, честный коэффициент равен 1 / 0,50 = 2,00. Но букмекер закладывает маржу, нормируя вероятности так, чтобы их сумма превысила 100%. На рынке 1X2 с честными 50%–30%–20% (сумма 100%) после надбавки 5% вы увидите веса 52,6%–31,6%–21,1%, а котировки — около 1,90–3,16–4,74.
Валуй появляется, когда ваша модельная вероятность выше подразумеваемой после очистки от маржи. Условный пример: модель даёт 42% на тотал больше 2,5, что соответствует честному коэффициенту 2,38. Букмекер предлагает 2,10 (подразумеваемая 47,6%). После вычета 4% маржи «чистая» вероятность конторы — около 45,8%. Ваши 42% 0,458 становится 0,48 > 0,458.
Для размера ставки используйте Келли: f = (b·p − q) / b, где b — чистый коэффициент (кэф−1), p — ваша вероятность, q=1−p. Условный пример: кэф 2,20 (b=1,20), p=0,48 → f ≈ (1,20·0,48−0,52)/1,20 ≈ 5,3%. Это агрессивно: берите фракционное Келли — 1/4 или 1/2 от f, чтобы ограничить дисперсию и просадки.
При сомнениях в p режьте долю ещё вдвое или фиксируйте 0,5–1% от банка на ставку.Проверка модели: калибровка, Brier, ранжирование
Проверка модели: калибровка, Brier, ранжирование
Сначала смотрим, не врёт ли модель самой себе. Делим все прогнозы на 10 калибровочных бинов по предсказанной вероятности: 0–0.1, 0.1–0.2 и так далее. В каждом бине считаем фактическую частоту исхода. Если для бина 0.55–0.65 модель обещала 60%, а по факту вышло 52% — есть системный перекос. Хорошая калибровка — когда точки лежат близко к диагонали y=x. Условный пример: на 200 матчах в бине 0.70–0.80 модель дала 75% в среднем, а реально прошло 71 из 96 — это 74%, расхождение в пределах шума.
Для вероятностных оценок используем две метрики. Brier score — средний квадрат ошибки: (P − Y)^2, где Y=1 при наступлении, иначе 0. Чем ниже, тем лучше; идеальный ноль. Log loss — штрафует за самоуверенность: −[Y·log(P)+(1−Y)·log(1−P)]. Если модель выдала 0.99 на проигрыш, а он случился — штраф огромный. Условный пример: Brier 0.218 против базового 0.250 — это заметный шаг вперёд.
Футбол — это счёт, а не только исход. Ранговая надёжность (RPS) оценивает весь вектор вероятностей по счётам: штрафует за то, что масса вероятности стоит «далеко» от реального счёта. Для 0:0, 1:0, 0:1, 1:1, 2:1… считаем кумулятивные суммы и квадрат разности кумулятивов, усредняем. Чем RPS ниже, тем точнее «форма» распределения. Это важнее Brier, если вы ставите на тоталы и разницы.
Backtest делайте честно: скользящее окно по оценке λ, запрет на заглядывание вперёд. Прогоните 2–3 прошлых сезона недельными блоками: каждое воскресенье обучаете на T−90…T−1 день, прогнозируете матчи T. Сводите Brier, log loss и RPS по неделям, смотрите стабильность, а не один удачный отрезок. Условный пример: RPS упал с 0.221 до 0.208 после добавления корреляции счёта — оставляем правку.
| Метрика | Цель | О чём говорит |
|---|---|---|
| Калибровка (бин 0.60–0.70) | Факт ≈ 65% | Нет системной переоценки |
| Brier | Ниже базы | Меньше квадратичных ошибок |
| Log loss | Ниже базы | Нет опасных «единиц» и «нулей» |
| RPS | Ниже базы | Лучше форма распределения по счётам |
Выводы
Пуассон — это крепкая база для оценки тоталов и исходов, если вы держите калибровку в ежовых рукавицах. Модель переводит силу атаки и защиты в ожидаемые голы (λ), а затем — в вероятности счёта. На длинной дистанции она даёт устойчивую оценку, но не «видит» контекст: мотивацию, погодные аномалии, внезапные травмы. Ваша задача — не ждать чудес от формулы, а обеспечить ей чистые входные данные и дисциплину. Точность рождается на входе. Нужны окна наблюдений без «протухших» матчей, взвешивание по давности, учёт домашнего поля и уровня лиги. Для λ используйте регрессию с поправками на удаление, счёт и время: после гола темп и риск меняются, и «голые» средние искажают картину. Зависимость счёта (например, 0:1 на 75-й минуте) ломает независимость событий — добавляйте матрицы состояний или корректируйте интенсивности по минутам. Модель — инструмент, а не гарантия прибыли. Решающий слой — рыночный: маржа, движение линии и ваша дисциплина. Переводите вероятности в коэффициенты, вычитайте маржу, ищите валуй относительно закрытия (closing line). Если вы стабильно бьёте закрытие на 1–2% по калибровке и Brier, вы на верном пути; если нет — чините данные и λ, а не увеличивайте долю ставки. Чек-лист перед ставкой:- λ рассчитаны на чистом окне, с взвешиванием и поправкой на удаления/счёт.
- Проверена калибровка по тоталам и исходам; Brier и ранжирование в плюсе.
- Сравниваете с закрытием: перевес есть после вычета маржи.
- Банкролл и размер ставки фиксированы; стоп-лоссы включены.
Частые вопросы
1. Как рассчитать λ для домашней и гостевой команды по модели Пуассона?
Параметр λ (ожидаемое количество голов) вычисляется как произведение базовой силы лиги, атакующей силы хозяев и защитной силы гостей. Для домашних матчей формула: λ_home = α * β_home * γ_away, где α — средний показатель голов за игру в лиге, β — сила атаки, γ — сила защиты. Для гостей формула аналогична: λ_away = α * β_away * γ_home, но без учёта домашнего бонуса α.
2. Какая разница между базовой моделью Пуассона и Dixon–Coles?
Базовая модель Пуассона предполагает независимость количества голов, забитых каждой командой, что недооценивает ничьи 0:0 и 1:1. Модель Dixon–Coles добавляет поправочную функцию, которая корректирует вероятности для матчей с низкой результативностью (0 и 1 гол), учитывая зависимость событий в последние минуты игры. Это делает прогнозы на точный счёт более реалистичными, особенно для равных соперников.
3. Как перевести вероятности модели в коэффициенты с учётом маржи букмекера?
Сначала сложите вероятности всех взаимоисключающих исходов (например, П1, Х, П2), чтобы найти суммарную «чистую» вероятность. Затем разделите 1 на эту сумму, чтобы получить коэффициент маржи (overround), и умножьте каждую исходную вероятность на этот коэффициент. Например, если сумма вероятностей 1.05, то итоговый коэффициент для исхода с вероятностью 0.5 будет: (1 / 1.05) * 0.5 ≈ 0.476, а десятичный кэф = 1 / 0.476 ≈ 2.10.
4. Как проверить точность модели: Brier, log loss или RPS?
Brier score и log loss подходят для оценки бинарных исходов (например, «обе забьют — да/нет»), штрафуя за излишнюю уверенность в неверном прогнозе. Для оценки точного счёта или разницы мячей (гандикапа) используется RPS (Ranked Probability Score), так как он учитывает близость прогноза к результату (ошибка на 0:1 лучше, чем на 3:0). Выбирайте метрику, соответствующую типу вашей ставки: RPS — для тоталов и фор, Brier — для рынков с двумя исходами.
5. Сколько матчей брать для оценки силы атаки и защиты и как их взвешивать?
Оптимально брать 30–40 последних матчей команды, чтобы сгладить дисперсию, но не терять актуальность состава. Веса должны экспоненциально убывать: например, используйте коэффициент затухания 0.003–0.006 в день, чтобы матч 90-дневной давности имел вес около 0.75 от текущего. Условный пример: если игра была 30 дней назад, её вес составит e^(-0.005 * 30) ≈ 0.86, что придаёт больший приоритет недавней форме.