{ "gtm": "GTM-NDH47H" }
{ "author_name": "Редакция DTF", "author_type": "self", "tags": ["\u0433\u0435\u0439\u043c\u0434\u0438\u0437\u0430\u0439\u043d"], "comments": 0, "likes": 14, "favorites": 0, "is_advertisement": false, "section": "pro" }
Редакция DTF
5 143
Gamedev

Наглядная математика: как рассчитать ценность пользователя с помощью интегралов

Младший геймдизайнер Nevosoft Руслан Герасим в своем коллективном блоге геймдизайнеров на Medium рассказал, как рассчитать среднее время жизни пользователя в проекте и доход от него за это время.

Часто люди, имея в наличии инструмент для расчета какого-либо показателя, используют его «на веру». Если известна его функция, то зачем углубляться в происхождение? Я считаю такой подход в корне неправильным. Специалист должен стремиться улучшать свои профессиональные навыки и разбираться в базовых и основополагающих моментах, ведь с этими знаниями придет возможность модифицировать и улучшать используемые методы.

Итак, напомню, что такое LTV (англ. Lifetime Value). Фактически это доход с одного пользователя за время его существования в проекте. Знание LTV позволит оценить окупаемость инвестиций (ROI), определить лучшие каналы трафика и так далее.

Безусловно, время «жизни» в игре у каждого пользователя разное, как и количество внесенных средств, поэтому целесообразно взять среднее время жизни игрока (LT) и средний доход в день (ARPDAU).

Из всего вышесказанного вытекает метод прогнозирования LTV, основанный на знании среднего времени жизни LT и дохода с одного пользователя в день.

Интегральные функции распределения
(функции ухода и удержания)

Рассмотрим некоторую неотрицательную непрерывную случайную величину t, которая является временем до возникновения интересующего нас события, а именно до «смерти»  — ухода пользователя. Плотность вероятности этой величины обозначим f(t). Как будет показано позднее, вид этой функции нас не интересует.

Возьмем интегральный закон распределения величины F(t). Данная функция говорит нам о вероятности того, что событие произойдет на промежутке времени [0, T):

Таким образом, F(t) — функция ухода пользователя. Очевидно, значения этой функции лежат на промежутке от 0 до 1. Чтобы не было сомнений, рассмотрим пример. Будем отсчитывать время жизни проекта с нуля (то есть нулевой день — первый день жизни проекта). Пусть в нулевой день в игру пришло N человек — вероятность ухода пользователя равна 0 (в нулевой день уходов не происходит). В следующий день вероятность пользователя уйти составляет, например, 0,5. Умножая эту вероятность на N, мы получим количество ушедших человек.

Нетрудно догадаться, что функция удержания описывает вероятность события, обратного уходу:

S(t) — функция удержания, которая получается путем аппроксимации (приближения — прим. ред.) наблюдательных данных Retention — Days степенной функцией (ax^b). В общем случае данная функция называется Survival function (функция выживаемости). Она применяется для прогнозирования исходов в медицине, социологии и так далее.

S(t) — вероятность того, что событие произойдет на промежутке времени [T, +∞), то есть не произойдет на [0, T):

Расчет lifetime

Перейдем непосредственно к расчету среднего времени, на котором произойдет уход пользователя — математическое ожидание величины t:

Заметим, что

Таким образом,

Интегрируем по частям:

Вспомним, что вероятность ухода в нулевой день равна F(0) = 0, а в последний день промежутка F(T) = 1 (все пользователи уйдут из проекта):

Следовательно,

В принципе, этого уже достаточно, чтобы посчитать среднее время жизни пользователя. Но мы привыкли работать не с уходом, а с удержанием (retention):

То есть среднее время жизни пользователя в проекте равно площади под функцией удержания:

Заключение

Остался последний шаг:

Теперь мы знаем, откуда берутся эти функции.

Используя инструмент, понимайте не только то, какой результат он выдаст, но и как он работает.

#геймдизайн

Популярные материалы
Показать еще

Комментарии Комм.

Популярные

По порядку

Прямой эфир

Узнавайте первым важные новости

Подписаться