Раздел 42 · Аналитика данных с нуля

Вероятность: шансы легендарки, условная вероятность и Байес

middle~15 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

В уроке про статистику на Python мы брали p-value из stats.norm.sf как готовый рецепт. Чтобы понимать, откуда он берётся, нужен фундамент: что такое вероятность и как её считать. Начинаем этот блок с вопросов Брана: оба про шансы, и оба легко посчитать неправильно. Ошибка в первом обидит игрока, во втором забанит две сотни живых людей.

Частота вместо вероятности

Бросаешь кубик. Граней шесть, все равноправны, шанс шестёрки 1 из 6. Это классическая вероятность: благоприятные исходы делим на все.

С добычей так не выйдет: предметы не равноправны, и формулу шанса знает только код игры. Зато у нас есть история. Если повторить попытку много раз, доля удачных попыток подбирается к настоящей вероятности. Эта доля, частота, и есть наша оценка.

SQL-песочница

База · guild

Загружаю редактор…

База загрузится, когда ты выполнишь запрос или откроешь таблицы.

Выполни запрос, чтобы увидеть результат.

Выполни весь запрос кнопкой или Ctrl/Cmd+Enter. Ctrl+Space открывает подсказки. Можно писать несколько команд через точку с запятой, менять данные и открывать транзакции. У каждой песочницы своя база, изменения живут до ухода со страницы. «Сбросить базу» возвращает учебные данные, но не меняет SQL.

За полгода выпало 7818 предметов, из них 240 легендарных. Шанс, что очередной предмет окажется легендарным, около 240 / 7818 = 3,07%. Обычных 62,2%, редких 25,6%, эпических 9,1%. Каждый вариант это событие, и вероятности всех вариантов в сумме дают 1.

Сложение: «или»

Какой шанс получить эпик или легендарку? Предмет не бывает эпиком и легендаркой сразу, такие события называют несовместными. Их вероятности складывают: 9,09% + 3,07% = 12,16%.

Если события пересекаются, общую часть надо вычесть, иначе она посчитается дважды. Оружие выпадало 3593 раза (45,96%), легендарное оружие 82 раза (1,05%):

P(легендарка или оружие) = P(легендарка) + P(оружие) - P(легендарка и оружие)
                         = 3,07% + 45,96% - 1,05% = 47,98%

Это та же логика, что у UNION в уроке про операции над множествами: общие строки не удваиваются.

Умножение: «и»

Шанс легендарки за квест складывается из двух шагов. Сначала с завершённого квеста должен выпасть предмет, потом он должен оказаться легендарным. Второй шаг считают уже при условии, что первый случился. Это условная вероятность, пишут её через вертикальную черту: P(легендарка | выпал предмет).

Считаем по живым игрокам: ботов farm…x мы нашли ещё в уроке про DAU, а тестовые аккаунты студии с @studio.dev мы узнали в уроке про строки. Живые игроки завершили 23 642 квеста, предмет выпал в 7074 из них, легендарка в 218:

p_drop = 7074 / 23642          # 0.2992: предмет выпадает в трёх квестах из десяти
p_leg_given_drop = 218 / 7074  # 0.0308: из выпавших легендарных 3%
p_drop * p_leg_given_drop      # 0.0092: шанс легендарки за квест

Правило умножения: P(A и B) = P(A) * P(B | A). Шанс легендарки за квест 0,92%, втрое меньше, чем «3% легендарок» из таблицы добычи.

Когда знание о B не меняет шанс A, события называют независимыми, и формула упрощается до P(A) * P(B). Проверим на данных, независимы ли «легендарка» и «оружие». Если да, легендарного оружия было бы 3,07% × 45,96% = 1,41% всех предметов. На деле его 1,05%, а среди оружия легендарных 82 / 3593 = 2,28% против 3,07% в среднем. Оружие реже бывает легендарным, события зависимы, и просто перемножать их вероятности нельзя.

урок из курса

Урок из курса «Аналитика данных с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.