Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Penalizing parameters for being too small? #168
I realize that it is typical to penalize model coefficients/parameters for being too large. When training the CLV models implemented by this library, would it ever make sense to penalize coefficients for being too small in addition to penalizing them for being too large?
In my experimentation, I've come across instances where the distribution parameters end up being very small, and it can result in wacky values for the probability that a customer is alive. It almost seems like it would be valuable to make sure that these parameters fall within an ideal range rather than only preventing them from being too large. Perhaps somebody who knows more can tell me why that would be ill-advised.
It sounds like you have some prior information about valid parameter ranges for your fits. This information is super useful for making sure your predictions make sense, but it can be a bit tricky to incorporate into the MLE optimization framework that lifetimes uses.
I suggest that you might take a look at some MCMC approaches. For example https://github.com/datascienceinc/pydata-seattle-2017/blob/master/lifetime-value/pareto-nbd.ipynb implements the Pareto-NBD model using pymc3. The advantage here is that you would have the flexibility to specify prior distributions for your model parameters which deemphasize small parameter values.