1. Введение: ошибка оценки по короткой дистанции
В количественных финансах и статистической теории решений фактический результат понимают как шумную смесь двух компонентов: систематического мастерства (математического ожидания, ) и неустранимого случайного шума (дисперсии). В ставках на спорт же почти все путают прошлую прибыль с умением прогнозировать. Любителя с ROI +18% на 150 футбольных ставках объявляют гением, а количественную модель с проверенным перевесом +4%, которая просела на 6% за 300 ставок, выбрасывают как устаревшую.
В поведенческой экономике это искажение называется ошибкой оценки по результату, а усиливает его закон малых чисел (Тверски и Канеман, 1971): ошибочная уверенность, что малые выборки точно отражают свойства всей совокупности. При высокой дисперсии короткая финансовая история почти ничего не говорит о долгосрочном математическом ожидании.
Сколько ставок нужно, чтобы отвергнуть гипотезу о везении с уверенностью 95% или 99%? Как волатильность ставки растет с коэффициентом? Как строгие доверительные интервалы строятся для наблюдаемой доходности?
В статье выводится математика необходимого объема выборки в ставках на спорт. Мы получаем дисперсию одной ставки, применяем центральную предельную теорему для доверительных интервалов, выводим формулу необходимого объема выборки (), разбираем Brier score для проверки калибровки вероятностей, приводим таблицу, рассчитанную по формуле, и даем скрипт на Python для проверки статистической значимости.
2. Дисперсия одной ставки: множитель волатильности
Рассмотрим бинарный исход с десятичным коэффициентом , истинной вероятностью выигрыша и проигрыша . Пусть означает случайную чистую выплату на единицу ставки ():
Математическое ожидание
Математическое ожидание доходности равно:
Дисперсия
Дисперсия доходности одной ставки выводится из второго центрального момента:
Раскрываем скобки и упрощаем:
3. Центральная предельная теорема: распределение доходности на N ставках
Пусть аналитик делает независимых ставок с одинаковым распределением доходности . По центральной предельной теореме Линдеберга–Леви при средняя доходность сходится по распределению к нормальному закону:
Стандартная ошибка средней доходности () равна:
Отсюда следует фундаментальное свойство: неопределенность наблюдаемого ROI уменьшается пропорционально корню из объема выборки (). Чтобы вдвое сократить погрешность, выборку нужно увеличить вчетверо.
4. Проверка гипотезы и доверительные интервалы
Чтобы понять, отражает ли история ставок реальный перевес или везение, формулируем статистическую гипотезу:
- Нулевая гипотеза (): (перевеса нет, результаты определяются случаем и маржой букмекера).
- Альтернативная гипотеза (): (у игрока есть статистически подтверждаемый перевес ).
Тестовая статистика (Z-score)
При нулевой гипотезе стандартизированный Z-score равен:
Для стандартного уровня доверия 95% (значимость в одностороннем тесте) критическое значение . Для 99% .
Двусторонний 95% доверительный интервал для истинной доходности
Если аналитик получил доходность на ставках с коэффициентом 2.00 (), 95% доверительный интервал составит:
Интервал включает ноль, поэтому нулевую гипотезу отвергнуть нельзя. Несмотря на ROI +5%, статистически отличить результат игрока от везения невозможно.
5. Аналитический вывод объема выборки: формула
Чтобы узнать, сколько ставок () нужно для отклонения гипотезы об отсутствии перевеса с мощностью и уровнем значимости , приравниваем ожидаемый Z-score к критической границе:
Для стандартных параметров ( и мощность , значит ):
Формула показывает, что необходимый объем выборки обратно пропорционален квадрату перевеса (). Если перевес вдвое меньше, ставок нужно вчетверо больше.
6. Таблица: необходимый объем выборки по коэффициенту и перевесу
В таблице приведен минимальный объем выборки для статистической значимости на уровне 95% (, мощность 80%) при разных коэффициентах и перевесе; расчет по формуле выше с :
| Реальный перевес () | Кэф 1.50 (фавориты) | Кэф 1.95 (форы/тоталы) | Кэф 3.00 (андердоги) | Кэф 5.00 (аутсайдеры) |
|---|---|---|---|---|
| +1.0% | 30 610 ставок | 58 720 ставок | 124 312 ставок | 249 249 ставок |
| +2.5% | 4 818 ставок | 9 383 ставок | 20 033 ставок | 40 320 ставок |
| +5.0% | 1 169 ставок | 2 338 ставок | 5 066 ставок | 10 261 ставок |
| +7.5% | 502 ставок | 1 034 ставок | 2 275 ставок | 4 639 ставок |
| +10.0% | 272 ставок | 578 ставок | 1 293 ставок | 2 653 ставок |
При перевесе 2,5–3,0% и коэффициенте 1.95 аналитику нужно около 6 500–9 400 ставок, прежде чем одна только прибыль позволит исключить везение на этом уровне.
7. Калибровка вероятностей и Brier score
Прибыль сходится очень медленно, поэтому аналитики дополнительно проверяют калибровку вероятностей: она использует прогнозную вероятность каждой ставки, а не только ее исход. Основное правило оценки называется Brier score (Брайер, 1950):
Где означает оценку вероятности моделью, а фактический исход. Brier score раскладывается на надежность (калибровку), разрешающую способность и неопределенность. Явно плохо откалиброванная модель может проявиться в компоненте надежности раньше, чем история прибыли скажет что-то определенное.
8. Реализация на Python: проверка статистической значимости
Ниже приведен скрипт на Python, который оценивает любую историю ставок, считает Z-score, строит 95% доверительный интервал и оценивает, сколько еще ставок нужно для подтверждения перевеса.
# betting_significance_tester.py
import numpy as np
from scipy import stats
def evaluate_betting_record(odds_list, outcomes_list, alpha=0.05):
# Evaluates statistical significance of a betting track record.
odds = np.array(odds_list, dtype=np.float64)
outcomes = np.array(outcomes_list, dtype=np.float64) # 1 for win, 0 for loss
n = len(odds)
# Net returns per unit staked: (O - 1) if win else -1
returns = np.where(outcomes == 1, odds - 1.0, -1.0)
sample_mean_roi = np.mean(returns)
sample_std = np.std(returns, ddof=1)
standard_error = sample_std / np.sqrt(n)
# Z-test against null hypothesis of ROI <= 0
z_score = sample_mean_roi / standard_error
p_value_one_tailed = 1.0 - stats.norm.cdf(z_score)
# 95% Confidence Interval for ROI
z_crit = stats.norm.ppf(1.0 - alpha / 2.0)
ci_lower = sample_mean_roi - z_crit * standard_error
ci_upper = sample_mean_roi + z_crit * standard_error
# Required sample size for 80% power at current observed edge
if sample_mean_roi > 0:
n_required = int(np.ceil(((1.645 + 0.842) * sample_std / sample_mean_roi)**2))
else:
n_required = np.nan
return {
'num_bets': n,
'observed_roi_percent': sample_mean_roi * 100.0,
'z_score': z_score,
'p_value': p_value_one_tailed,
'statistically_significant': p_value_one_tailed < alpha,
'ci_95_roi_percent': (ci_lower * 100.0, ci_upper * 100.0),
'bets_needed_for_significance': n_required
}
if __name__ == '__main__':
# 500 bets at 1.95 odds with 54% win rate (+5.3% ROI)
np.random.seed(42)
synthetic_odds = [1.95] * 500
synthetic_outcomes = np.random.binomial(1, 0.54, 500)
results = evaluate_betting_record(synthetic_odds, synthetic_outcomes)
for k, v in results.items():
print(f"{k}: {v}")
9. Ошибка выжившего и иллюзия «успешного каппера»
Предположим, 1 000 любителей-капперов делают по 500 случайных ставок с нулевым перевесом. По свойствам нормального распределения около 130 из них покажут ROI +5% или выше чисто случайно (у каждого вероятность 13,2%, как в блоке выше). Эти везунчики запускают платные подписки, пишут в соцсетях о своем аналитическом превосходстве и привлекают наивные деньги.
Без понимания объема выборки и дисперсии инвесторы попадают в ошибку выжившего: видят заметных победителей и не замечают примерно 870 остальных, которые исчезли. Оценка капперов по Closing Line Value (CLV) и по необходимому объему выборки остается самой надежной защитой от ошибки выжившего.
10. Асимметрия и ставки на аутсайдеров
При применении центральной предельной теоремы к доходности ставок важны старшие моменты: асимметрия и эксцесс. Для асимметричной доходности, например ставок на аутсайдеров с низкой вероятностью выигрыша и большой выплатой, сходимость к нормальному закону медленнее; граница Берри–Эссеена для ошибки такого приближения растет вместе с третьим моментом доходности. При коэффициентах выше 4.00 длинный правый хвост приводит к тому, что симметричные нормальные доверительные интервалы занижают реально необходимый объем выборки. Разложения Корниша–Фишера позволяют скорректировать доверительные границы на эту асимметрию.
