Why do CLV models require custom likelihood implementations in PyMC3?

A came across this CLV model and found that the author needed to implement his own likelihood function, as opposed to using established likelihoods in PyMC3. This seems to be a pattern across CLV models that mix likelihoods, like Gamma-Poisson, for example.

Could this model have been implemented without a custom likelihood function? I’ve been curious if PyMC3 would allow multiple likelihoods to be multiplied together, feed one into the other, etc.


ping @sidravi1 as i think he wrote the post.
From a quick glance of the paper, seems it is a mixture of exponential so you might be able to rewrite it that way.