LTV: классический подход прогнозирования Pareto/NBD
Прогнозирование LTV - задача весьма нетривиальная. Почему? Потому, что для прогноза LTV нам потребуются 3 отдельные (независимые) оценки:
Начну с того, что этот алгоритм применяется в ситуациях, где нет регулярных платежей (т.е. не контрактная форма оплаты как, например, в e-commerce).
Также отмечу, что примечателен этот подход тем, что для его реализации нам потребуется самый обычный лог транзакций.
Первое, что мы делаем так это формируем специальную таблицу. Называется она Customer-Centric-Statistic (CBS).
Не вдаваясь в подробности, могу сказать, что эта таблица формируется из RFM статистики (frequency - "x", recency - "t.x", monetary - "sales.x") плюс ряд других расчетов, которые в дальнейшем помогут рассчитать параметры распределений.
Важно отметить, что для качественного прогнозирования обычно используется подход разделения данных на 2 части:
Итак, выполнив расчеты для CBS в таблице появились поля с префиксом .х , которые соответствуют статистике в калибровочном периоде, а также поля с префиксом star. - которые соответствуют статистике в holdout периоде.
Используя CBS таблицу мы можем быстро рассчитать параметры первых двух распределений (повторных покупок и оттока) и оценить как наша модель прогнозирует количество покупок в holdout периоде:
Как видим, модель неплохо аппроксимировала количество транзакций в калибровочном периоде, и несколько хуже - в holdout периоде. Хотя и в том и в другом периодах, модель схватила тренд.
Для более строгой оценки, мы можем рассчитать несколько показателей:
На уровне клиента средняя разница транзакций между моделью и фактом составляет около 1.6 транзакций. В целом же расхождение между суммами фактических и прогнозных транзакций на уровне 8.4%.
Далее, используя все ту же CBS мы можем рассчитать распределение среднего чека транзакции:
Как мы видим, распределение среднего чека транзакции получилось довольно точным (MAPE = 0.999).
Далее мы рассчитали несколько полезных метрик:
Две возможные оценки LTV следующие:
ВЫВОДЫ:
Т.к. тема LTV сложна и многообразна, я написал дополнительный пост, который погрузит вас в нюансы основных компонентов LTV.
- распределение повторных покупок
- распределение оттока клиентов
- распределение среднего чека покупок
Начну с того, что этот алгоритм применяется в ситуациях, где нет регулярных платежей (т.е. не контрактная форма оплаты как, например, в e-commerce).
Также отмечу, что примечателен этот подход тем, что для его реализации нам потребуется самый обычный лог транзакций.
Transaction log. |
Customer Centric Statistic (CBS). |
Не вдаваясь в подробности, могу сказать, что эта таблица формируется из RFM статистики (frequency - "x", recency - "t.x", monetary - "sales.x") плюс ряд других расчетов, которые в дальнейшем помогут рассчитать параметры распределений.
Важно отметить, что для качественного прогнозирования обычно используется подход разделения данных на 2 части:
- калибровочный период (там, где мы обучаем модель)
- holdout период (там, где мы оцениваем ее точность)
Итак, выполнив расчеты для CBS в таблице появились поля с префиксом .х , которые соответствуют статистике в калибровочном периоде, а также поля с префиксом star. - которые соответствуют статистике в holdout периоде.
Используя CBS таблицу мы можем быстро рассчитать параметры первых двух распределений (повторных покупок и оттока) и оценить как наша модель прогнозирует количество покупок в holdout периоде:
# Transactions estimated by model. |
Для более строгой оценки, мы можем рассчитать несколько показателей:
Model accuracy metrics. |
Далее, используя все ту же CBS мы можем рассчитать распределение среднего чека транзакции:
Distribution of AEV. |
Далее мы рассчитали несколько полезных метрик:
- p_Alive - это вероятность того, что клиент в holdout периоде сделает покупку;
- xstar.pnbd - это количество транзакций, которые клиент сделает в holdout периоде;
- DET - это дисконтированное число транзакций, которые клиент сделает с начала калибровочного периода до "конца своих дней".
Potential Future Revenue (PFR). |
Две возможные оценки LTV следующие:
- PFR (Potential Future Revenue) - эта сумма денег, которую клиент принесет в течение holdout периода, т.е. Future Value за период.
- PFR_DET - эта сумма денег, которую клиент принесет с начала holdout периода до "конца своих дней", т.е. Future Value.
Обратите внимание, что высокий FV является результатом перемножения:
- AEV - которая, в свою очередь, сильно коррелирует с доходом в калибровочном периоде (sales.x);
- DET - которая, в свою очередь, сильно зависит от вероятности совершения транзакции (p_Alive) в этом периоде.
- Модель Pareto/NBD для не контрактных клиентов сложна в реализации;
- Даже сложная модель не дает 100% точности;
- Часто расчет LTV останавливается на прогнозе PFR за некий период.
Т.к. тема LTV сложна и многообразна, я написал дополнительный пост, который погрузит вас в нюансы основных компонентов LTV.
Comments
Post a Comment