I'm interested in Bayesian modeling of customer lifetime value (CLV), preferably via PyMC3. I've found that research in this area started mid-to-late 1900's and has remained active since. It would seem that some combination of Exponential, poisson, Negative Binomial, Gamma, and Pareto distributions are frequently used. However, the likelihood function is not a "stock" distribution built into popular probabilistic programming tools (such as PyMC3 and Stan.) In consequence, various authors have derived custom likelihood functions to ensure successful posterior sampling.

Here are two such implementations:

  1. PyMC3 implementation
  2. R/Stan implementation

And this paper by Fader/Hardie seems to contribute some ideas central to the first link and at the very least, inspirational to the second.

Here is my current understanding of the Bayesian CLV design:

  1. The number of purchases made by any given customer (irregardless of dollar) are Poisson distributed when (and only when) in an active state; so far, this reminds me of zero-inflated Poisson regression. Customers vary, but pooling share information between customers and the Gamma distribution is used to accomplish this effect in some way.

  2. Each customer has a fixed but latent lifetime. The exponential distribution is used to model time until the next period of activity. I'm not positive on the link between these ideas; perhaps an extremely long period of inactivity, associated with a very small likelihood of the exponential PDF mitigates future events described by the Poisson distribution in some way.

  3. The PyMC3 implementation models the per customer average purchase value, which seems to be an integral part of the model in virtually any situation, unless a given business sells only one product at a fixed price or variations in price are negligible.

My biggest point of confusions are (A) the link between inactivity and a customer never returning, (B) How parameters are pooled such that customers receive their own "parameters" but inter-parameter communication exists, (C) How a given dollar value, the customer's CLV, can be inferred by combining these elements, and (D) How/Why a customer likelihood function is necessary to achieve this effect.

In this question, I'm soliciting answers that clarify any/all of the above.


A) A customer not returning is directly modeled by the Geometric process.

B) The model integrates out each customer's parameters using their assumed heterogeneity distribution. You can infer them using Bayes' Theorem.

C) Another paper by Fader, Hardie, Lee (2015) in Journal of Marketing Research brings in the monetary value in the Gamma-Gamma model. Also, Lee is another author in both of these works.

D) The authors condition on knowing the individual-level parameters and build the individual-level likelihood. Then the authors remove the conditioning by integration.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.