Customer Lifetime Value in R笔记

原文:http://www.keetan.me/clv

  1. CLVcustomer lifetime value是顾客对公司的价值估计,客户在与公司整个接触时期的未来贡献现金流净值,利用到的模型为Pareto/NBD Buy Til'You Die;重点是预测顾客的未来价值
  2. Four Types of Customer Relationships:CLV对非契约业务的估计不同于合同业务,区别在于客户的生命终止点是否能确认,本文RFM和CLV关注的是非契约业务的客户;客户的Frequency也连续和离散区别,如顾客可能每天来菜市场,这就是时间上连续的业务;本文关注有连续购买机会的公司
    1. continuous-noncontractual:grocery purchases食品杂货
    2. discrete-noncontractual:event attendance出勤率,prescription refills处方药
    3. continuous-contractual:credit card信用卡
    4. discrete-contractual:magazine subscribe杂志订阅
  3. Pareto/NBD:模型假设顾客以稳定的速度,随机购买产品,直到离开;对客户购买模式进行建模,然后预测未来的购买情况,客户购买行为的描述RFM;该模型基于5个假设:
    1. 客户个体独立
      1. 独立客户购买概率为泊松分布概率λ
        1. *泊松分布的参数λ是单位时间(或单位面积)内随机事件的平均发生率。 泊松分布适合于描述单位时间内随机事件发生的次数

        1. 该模型的泊松分布处于△t时间内,假设客户在△t的购买事件发生率为△t*λ,且客户购买事件独立,△t时间内的购买行为次数符合泊松分布
      • 独立客户的留存率为指数分布,其中客户流失率为μ,购买行为次数t

        1. 指数分布是描述泊松过程中的事件之间的时间的概率分布,即事件以恒定平均速率连续且独立地发生的过程
    • 客户异质性
      1. 客户购买率λ符合形状参数r和尺度参数α的γ分布

      1. 客户流失率μ符合形状参数s和尺度参数β的γ分布

      1. 客户购买率λ和客户流失率μ是独立的
      2. *γ分布即多个独立且相同分布(iid)的指数分布变量的和的分布
    • 本文中的似然函数由客户购买率λ和客户流失率μ组成

      1. x为历史购买次数-1,t.x为开始续费时间到最近一次续费时间间隔,T.cal为第一次消费时间距离训练集结束时间的间隔
    • R的实现:使用BTYD包,实现了Pareto/NBD模型和生命周期模型
  • R细节
    1. *grepl(pattern,x,fixed=T|F)搜索字符向量中匹配参数pattern的元素,fixed=T是默认值,返回元素的T|F,fixed=F返回匹配值的下标
    2. *openxlsx::read.xlsx()会将日期格式转化为数值格式,用Rtool解决
    3. pnbd.EstimateParameters()可能遇到大数据集不能用,可以利用BTYD2包的自定义函数
      1. 出现大数据集无法计算系数的问题,BTYD包内即包含修改版本,bgnbd.EstimateParameters即可
    4. LL=pnbd|bgnbd.cbs.LL(params, cal.cbs)求似然对数

猜你喜欢

转载自blog.csdn.net/u013103305/article/details/83614733