LTV: классический подход прогнозирования Pareto/NBD

Прогнозирование LTV - задача весьма нетривиальная. Почему? Потому, что для прогноза LTV нам потребуются 3 отдельные (независимые) оценки:
  • распределение повторных покупок
  • распределение оттока клиентов
  • распределение среднего чека покупок
Это сложные математические задачи и, очень здорово, что ученые мужи взялись за них и решили (причем давно, в 1987 году). Сегодня мы бегло пройдемся по классическому подходу прогнозирования LTV под названием Pareto/NBD.

Начну с того, что этот алгоритм применяется в ситуациях, где нет регулярных платежей (т.е. не контрактная форма оплаты как, например, в e-commerce).

Также отмечу, что примечателен этот подход тем, что для его реализации нам потребуется самый обычный лог транзакций.

Transaction log.
Первое, что мы делаем так это формируем специальную таблицу. Называется она Customer-Centric-Statistic (CBS).

Customer Centric Statistic (CBS).

Не вдаваясь в подробности, могу сказать, что эта таблица формируется из RFM статистики (frequency - "x", recency - "t.x", monetary - "sales.x") плюс ряд других расчетов, которые в дальнейшем помогут рассчитать параметры распределений.

Важно отметить, что для качественного прогнозирования обычно используется подход разделения данных на 2 части:
  • калибровочный период (там, где мы обучаем модель)
  • holdout период (там, где мы оцениваем ее точность)
Идеально, чтобы калибровочный период был не меньше года и т.о. захватывал годовую сезонность, однако при необходимости его можно делать и короче (для примера я взял 4 месяца).

Итак, выполнив расчеты для CBS в таблице появились поля с префиксом  , которые соответствуют статистике в калибровочном периоде, а также поля с префиксом star. - которые соответствуют статистике в holdout периоде.

Используя CBS таблицу мы можем быстро рассчитать параметры первых двух распределений (повторных покупок и оттока) и оценить как наша модель прогнозирует количество покупок в holdout периоде:

# Transactions estimated by model.
Как видим, модель неплохо аппроксимировала количество транзакций в калибровочном периоде, и несколько хуже - в holdout периоде. Хотя и в том и в другом периодах, модель схватила тренд.

Для более строгой оценки, мы можем рассчитать несколько показателей:

Model accuracy metrics. 
На уровне клиента средняя разница транзакций между моделью и фактом составляет около 1.6 транзакций. В целом же расхождение между суммами фактических и прогнозных транзакций на уровне 8.4%.

Далее, используя все ту же CBS мы можем рассчитать распределение среднего чека транзакции:

Distribution of AEV.
Как мы видим, распределение среднего чека транзакции получилось довольно точным (MAPE = 0.999).

Далее мы рассчитали несколько полезных метрик:
  1. p_Alive - это вероятность того, что клиент в holdout периоде сделает покупку;
  2. xstar.pnbd - это количество транзакций, которые клиент сделает в holdout периоде;
  3. DET - это дисконтированное число транзакций, которые клиент сделает с начала калибровочного периода до "конца своих дней".
Собственно теперь можно переходить к оценкам LTV:

Potential Future Revenue (PFR).

Две возможные оценки LTV следующие:
  • PFR (Potential Future Revenue) - эта сумма денег, которую клиент принесет в течение holdout периода, т.е. Future Value за период.
  • PFR_DET - эта сумма денег, которую клиент принесет с начала holdout периода до "конца своих дней", т.е. Future Value.
Технически, LTV = Current Value  (CV) + Future Value (FV). Однако, часто клиентов между собой сравнивают просто по FV.

Обратите внимание, что высокий FV является результатом перемножения:
  • AEV - которая, в свою очередь, сильно коррелирует с доходом в калибровочном периоде (sales.x);
  • DET - которая, в свою очередь, сильно зависит от вероятности совершения транзакции (p_Alive) в этом периоде.
ВЫВОДЫ:
  1. Модель Pareto/NBD для не контрактных клиентов сложна в реализации;
  2. Даже сложная модель не дает 100% точности;
  3. Часто расчет LTV останавливается на прогнозе PFR за некий период.
P.S. Все расчеты выше были сделаны на языке R с использованием библиотеки "BTYD".

Т.к. тема LTV сложна и многообразна, я написал дополнительный пост, который погрузит вас в нюансы основных компонентов LTV.


Comments

Popular posts from this blog

IV/WOE - хороший способ понять какой информацией вы обладаете

A/B-тестирование: смотреть на конверсию vs смотреть на продажи

Продуктовая аналитика: влияние продуктовых фич на ретеншн