Как построить свою модель оценки вероятностей
Данные, базовая модель на распределении Пуассона, поправки, дающие больше всего, и бэктест без самообмана — с таблицей типичных утечек.
Своя модель — это не нейросеть и не сложный код, а воспроизводимый способ превратить данные в вероятность исхода. Минимальная рабочая версия строится в обычной таблице за вечер и уже даёт то, чего нет у большинства: число вместо ощущения, которое можно сравнить с ценой.
Ниже — какие данные нужны, как собрать базовую модель на распределении Пуассона, как проверить её на истории и какие ошибки делают проверку бессмысленной.
Коротко.
- Модель нужна не для точности предсказаний, а для сравнимости: она даёт вероятность, а не мнение.
- Базовая версия — ожидаемые голы каждой команды плюс распределение Пуассона для перевода в исходы.
- Проверка на истории обязательна, и в ней легко смошенничать самому с собой: главный враг — подглядывание в будущее.
- Калибровка важнее точности: если модель говорит «60%», такие события должны происходить примерно в 60% случаев.
- Модель без сравнения с ценой бесполезна: она отвечает на вопрос «сколько вероятность», а не «есть ли ставка».
Часть цикла
Материал для тех, кто уже освоил value-беттинг и расчёт EV. Данные для модели разобраны в статьях про xG и полезную статистику.
Шаг 1. Данные
| Что нужно | Зачем | Замена, если нет |
|---|---|---|
| xG за и против по матчам | Основа оценки силы атаки и обороны | Удары из штрафной |
| Дом/гости отдельно | Разница бывает больше, чем между командами | Общая поправка на поле |
| Дата матча | Веса по свежести и учёт календаря | Порядковый номер тура |
| Составы | Ручная поправка на потери | Пропускать матчи с известными потерями |
| Коэффициенты (открытие и закрытие) | Проверка модели против рынка | Только закрытие |
Правило одно: источник данных должен быть единственным и неизменным. Смешение xG из разных моделей делает сравнение бессмысленным ещё до начала расчётов.
Шаг 2. Базовая модель на Пуассоне
- Для каждой команды посчитайте среднее xG «за» и «против» за 6–10 матчей, отдельно дома и в гостях.
- Оцените ожидание для матча: атака хозяев в среднем с обороной гостей, и наоборот.
- Постройте таблицу вероятностей числа голов для каждой команды по формуле Пуассона: P(k) = (λk · e−λ) / k!
- Перемножьте вероятности по парам счетов и сложите нужные клетки: победа, ничья, поражение, тоталы.
- Переведите вероятности в честные коэффициенты (1 ÷ p) и сравните с линией.
Пример. Ожидания 1,65 и 1,10 гола. Вероятности нуля голов: 19,2% и 33,3%; одного: 31,7% и 36,6%. Перемножая и складывая клетки, получаем примерно 55% на победу хозяев, 23% на ничью, 22% на победу гостей и около 58% на тотал больше 2,5. Честные коэффициенты: 1,82 / 4,35 / 4,55 / 1,72.
Шаг 3. Поправки, которые дают больше всего
- Домашнее преимущество. Проще всего как множитель к ожиданию хозяев, откалиброванный по лиге — см. разбор фактора.
- Свежесть данных. Веса: последние матчи важнее ранних.
- Составы. Ручная поправка, но именно она чаще всего отличает модель от рынка.
- Календарь. Снижение ожидания для команды, играющей третий матч за восемь дней.
- Зависимость голов. Чистый Пуассон считает голы независимыми; на практике ничьи встречаются чуть чаще, чем он предсказывает.
Сетка счетов: как это выглядит в таблице
Самая наглядная часть модели — матрица вероятностей счетов. По строкам голы хозяев, по столбцам голы гостей, в клетке — произведение двух вероятностей. Для ожиданий 1,65 и 1,10 фрагмент выглядит так.
| Хозяева \ Гости | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| 0 | 6,4% | 7,0% | 3,9% | 1,4% |
| 1 | 10,6% | 11,6% | 6,4% | 2,3% |
| 2 | 8,7% | 9,6% | 5,3% | 1,9% |
| 3 | 4,8% | 5,3% | 2,9% | 1,1% |
Дальше складываем нужные клетки: диагональ даёт ничью, всё под ней — победу хозяев, над ней — победу гостей. Для тотала больше 2,5 суммируем клетки, где сумма голов от трёх. Из этой же таблицы получаются вероятности точного счёта и «обе забьют» — достаточно выбрать другие клетки.
Проверка себя. Сумма всех клеток должна давать 100% с учётом хвостов (счёт 4+). Если у вас получается заметно меньше, значит, вы обрезали таблицу слишком рано — добавьте строки и столбцы до 6–7 голов.
Поправка на зависимость голов
Чистый Пуассон считает, что голы команд независимы. В реальности это не совсем так: после первого мяча меняется рисунок игры, а ничейные счета встречаются чуть чаще, чем предсказывает модель. Практических решения два.
- Простое: вручную поднять вероятности ничейных счетов (0:0, 1:1, 2:2) на небольшую величину и нормировать таблицу заново.
- Аккуратное: использовать поправочные коэффициенты для низких счетов — это классический подход, который в таблице реализуется четырьмя множителями.
Величину поправки подбирают по истории лиги: сравнивают, как часто ничьи случались на самом деле и что предсказывала непоправленная модель.
Как обновлять модель по ходу сезона
- Каждый тур — добавлять новые матчи в выборку и убирать самые старые.
- Раз в месяц — проверять калибровку на накопленных прогнозах.
- При смене тренера — обнулять выборку команды и первые матчи давать с большим запасом по цене.
- Раз в сезон — пересматривать поправки: домашнее преимущество и коэффициент ничьих меняются между сезонами.
- Никогда — не менять параметры после неудачной серии: это подгонка под шум.
Важно. Разделяйте два журнала: прогнозы модели и фактические ставки. Первый показывает качество оценок, второй — качество ваших решений о цене и размере. Смешав их, вы не поймёте, что именно работает.
Шаг 4. Бэктест без самообмана
Проверка на истории — единственный способ понять, стоит ли модель усилий. И самый простой способ обмануть себя.
| Ошибка | Как выглядит | Как избежать |
|---|---|---|
| Подглядывание в будущее | В расчёт попали данные, которых не было до матча | Считать строго по срезу на дату матча |
| Коэффициент задним числом | Взята закрывающая цена вместо доступной на момент ставки | Фиксировать цену, по которой реально поставили бы |
| Подгонка параметров | Веса подобраны так, чтобы прошлое выглядело прибыльным | Проверять на отрезке, который не участвовал в настройке |
| Выбор удобного периода | «Модель работает с марта по май» | Брать всю доступную историю подряд |
| Игнорирование маржи | Расчёт по честным ценам вместо реальных | Считать по линии с наценкой |
Шаг 5. Калибровка
Хорошая модель не обязана «угадывать». Она обязана быть честной в вероятностях: среди событий, которым она дала 60%, происходить должно примерно 60%. Проверяется просто: разбейте прогнозы на группы по десять процентных пунктов и сравните заявленную вероятность с фактической долей.
Если модель систематически завышает вероятности, все ваши расчёты value окажутся оптимистичными — и подход будет убыточным при внешне правильной арифметике.
Важно. Калибровка проверяется на сотнях прогнозов, а не на десятке. До этого объёма модель — гипотеза, а её оценки требуют большего запаса относительно цены.
Что делать с результатом модели
Модель выдаёт вероятности — дальше начинается работа, ради которой всё затевалось.
| Действие | Как выполняется |
|---|---|
| Перевести в честные коэффициенты | 1 ÷ вероятность по каждому исходу |
| Сравнить с линией | Берётся лучшая доступная цена, а не первая попавшаяся |
| Применить порог | Ставка только при запасе от 5–10% в зависимости от грубости модели |
| Определить размер | Флэт либо доля Келли — см. банкролл-менеджмент |
| Записать в журнал | Оценка модели, цена, порог, решение — включая отказы |
Отказы записывать важнее, чем кажется: через сотню матчей видно, отсекает ли ваш порог убыточные ставки или просто мешает ставить. Полная последовательность разбора матча с поправками на контекст — в чек-листе, а расчёт размера — в статье о банкролл-менеджменте.
Когда модель не нужна
Если вы ставите редко и на один-два знакомых турнира, оценки «от очищенной линии» с поправками на составы обычно хватает. Модель окупается там, где нужно обрабатывать много матчей и сравнивать их между собой по единому критерию — то есть при объёме, а не при точечных ставках.
Частые вопросы
Нужно ли программировать
Нет. Пуассон считается встроенной функцией в любой таблице, а перемножение вероятностей счетов — обычная сетка 6×6. Программирование окупается позже, когда матчей становится слишком много для ручной работы.
Насколько точной должна быть модель
Достаточно точной, чтобы отличать расхождения от шума. Реалистичная цель — не превзойти рынок в среднем, а находить отдельные ситуации, где вы располагаете информацией, которую рынок учёл слабо.
Что делать, если модель всегда согласна с линией
Это хороший знак: она откалибрована. Перевес тогда ищут не в самой модели, а в скорости (ранние линии), в сравнении площадок и в рынках с меньшим вниманием.
Сколько истории нужно для бэктеста
Чем больше, тем лучше, но с оговоркой: данные старше двух-трёх сезонов описывают другой футбол и другие составы. Практичный компромисс — последние два сезона плюс текущий, с проверкой на отрезке, который не участвовал в настройке.
Материал носит информационный характер и не является призывом к участию в азартных играх. Ставки связаны с риском потери денег; ставьте только те суммы, потерю которых можете себе позволить. 18+. Если игра перестала быть развлечением — см. нашу статью об ответственной игре и обратитесь за помощью.