Условие
У конкурента — 1000 прототипов игр, из них 5 успешных. Наша компания выпустила 200 прототипов и ни один не был успешен.
Какова вероятность, что следующий (201-й) наш прототип будет успешен? Предложите минимум 2 метода решения. Если есть варианты, требующие дополнительных данных, перечислите, какие именно.
Решение
Подход
Это вопрос про оценку вероятности при малой выборке и нулевых событиях. Прямой MLE = 0/200 = 0 не имеет смысла: мы хотим разумно «не нулевую» оценку, но и не «такую же, как у конкурента» — мы не доказали свою компетентность.
Метод 1. Frequentist — правило «add-one» (Лаплас) или Уилсон
Правило Лапласа (rule of succession): при s успехах из n оцениваем вероятность как (s + 1) / (n + 2).
Это эквивалентно постериору при uniform prior Beta(1,1) и наблюдении 0 успехов. Не очень обоснован для нашего случая (у нас есть «опорная» статистика конкурента).
Доверительный интервал Уилсона для пропорции при 0 успехов из 200:
То есть с 95% уверенностью наша вероятность успеха .
Метод 2. Bayes — Beta prior из данных конкурента
Используем информативный prior из данных конкурента: он выпустил 1000 прототипов, 5 успешных, значит эмпирически .
Пишем prior как Beta(α=5+1, β=995+1) = Beta(6, 996) (с +1 для регуляризации). Это «5 успехов и 995 неудач из «прошлой жизни»».
Наблюдаем 0 успехов из 200 → постериор Beta(6, 1196).
То есть если предположить, что мы «такие же, как конкурент», ожидаемая вероятность ≈ 0.5%.
Альтернативный prior — слабее: Beta(0.5, 0.5) (Jeffreys), Beta(1,1) (uniform). Apply на 0/200 даст ≈ 0.0025 или 0.0050 соответственно.
from scipy.stats import beta
import numpy as np
# Prior от конкурента
alpha_prior, beta_prior = 6, 996
# Наши данные
s_us, n_us = 0, 200
post_alpha = alpha_prior + s_us
post_beta = beta_prior + (n_us - s_us)
mean = post_alpha / (post_alpha + post_beta)
ci = beta.interval(0.95, post_alpha, post_beta)
print(f"E[p] = {mean:.4f}, 95% CI = {ci}")Метод 3. Иерархическая модель (если есть данные по нескольким компаниям)
Если бы у нас было больше компаний (своя, конкурента, ещё несколько) — построили бы hierarchical Bayes:
- Глобальный prior на «индустрии» .
- Каждая компания: с параметрами, выученными из её данных.
В Stan / PyMC3 это бы дало честные интервалы для нашей p_us, не «вытягивая» к конкуренту.
Что дополнительно нужно
Если есть возможность собрать данные:
- Определение «успешного прототипа». У нас и у конкурента может быть разная планка (DAU > X, retention > Y, ROI > 0). Без сравнимости 5/1000 и 0/200 — несопоставимы.
- Стадии прототипа. Отбор у конкурента может быть жёстче — на этапе альфы они отсекают слабые. У нас все 200 могли быть в одной стадии.
- Время измерения «успеха». Если конкурент мерил «успех» через год после выпуска, а мы — через 3 месяца, наш
n=200этоn=200, не дозревшее. - Жанры. Если конкурент в hyper-casual, а мы в RPG — разные базовые rate.
- Команды-исследовательский ресурс. Сколько UA-бюджета вложено в каждый прототип? Иначе сравнение нечестное.
Анализ / интерпретация
Все три метода дают близкое значение ~0.5%. Это и есть честная оценка при таких данных: мы не можем уверенно сказать «у нас 0%», потому что 200 — небольшая выборка для редкого события (подразумеваемая вероятность = десятые/сотые доли процента).
Honestly, разница между 0% и 0.5% — это шум. Реальное действие — собрать больше данных (метод 4: «нужно ещё 800 прототипов, чтобы стало понятно, отличаемся ли мы от конкурента»).
Подводные камни
- MLE = 0 — даёт «никогда не будет успеха». Не используйте без регуляризации.
- «Усиление успеха» наивным правилом. Если просто прибавить 1 — почему именно 1? Лаплас обоснован, но не для всех задач.
- Игнорировать prior от конкурента. У нас есть полезная информация — глупо её не использовать.
- Считать 5/1000 как «истину» — это сама оценка с шумом. Для конкурента . То есть 95% CI для конкурента: [0.06%, 0.94%].
- Тест статзначимости отличия от конкурента. С n=200 у нас power ничтожна — обнаружить разницу 0.5% vs 0% невозможно при таких размерах.
- Считать «прототипы» одинаковыми экспериментами. Они не одинаковые: разные жанры, разное качество. Усреднение по ним сомнительно.
Альтернативы
- Bootstrap по конкуренту + наша доверительная оценка — даст распределение разности вероятностей.
- Stopping rule analysis: «когда мы можем заявить, что наша p ≠ p_competitor?». При нужно ~3000–5000 прототипов с обеих сторон.
Эталонный ответ
Минимум 2 метода:
- Лаплас / Уилсон:
(0+1)/(200+2) ≈ 0.5%, верхняя граница 95% CI ≈ 1.9%. - Bayes с prior от конкурента: .
Оба метода дают одинаковый порядок. Главный честный ответ: «при текущих 200 наблюдениях мы не можем статзначимо отличить нашу p от конкурента — разница на уровне шума».
Что нужно дополнительно: согласовать определение «успешный», учесть жанры, стадии и время измерения; собрать больше прототипов или построить hierarchical Bayes на индустрии.