1. 程式人生 > >Customer Lifetime Value in R筆記

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)求似然對數