Open shubham223601 opened 1 year ago
@shubham223601 Yes this makes sense, but just for the record, there is some saturation effects modelled for 'carryover' and 'adstock' models in the form of a learned exponent parameter. Now I've not had great success with exponent saturation, it is quite a restricted functional transformation, especially in LightweightMMM there is a considerable prior belief that there is no saturation effect, with prior
_EXPONENT: dist.Beta(concentration1=9., concentration0=1.)
@shubham223601, this addition would align the methodology of Lightweight MMM with the paper "Bayesian Methods for Media Mix Modeling with Carryover and Shape Effects". Have you had success with this? I'm testing this now and I'll let you know my findings. It would be great to have this code added to the main repo.
@JasonHSchwartz yes i tried indeed and the formulation i suggested above works, adding the saturation to the model formulation along with carryover factor. Even i investigated the channels saturation behaviour post modelling, which indeed confirms the added saturation and moreover the results doesnot deviate too much as compared with orginial carryover formulation as well
@JasonHSchwartz did you get a chance as well to have a look at this?
@shubham223601, Yes, I've built a few models using this approach. Some of the saturation curves are not saturating quickly enough and I've had limited success with tuning priors to avoid this behaviour. I'm planning to run a few more iterations to find the right prior setup to control this behaviour.
The implementation does appear to be working though.
Are you planning to make a pull request? This could be useful for me (and I'm assuming others) who are running a parallel codebase to support the addstock-carryover model.
@JasonHSchwartz Thanks for the check, indeed for my use case it does work as well. I already created a pull request today, hoping the developers can review the MR so that it can be merged. Thanks for the testing it out!
@shubham223601, No problem, thanks for taking the initiative, writing the code and making the PR.
I'm still testing priors, I'll post an update when I've found a good set of default priors for this model type.
I understand that model type - carryover only takes into the consideration the delayed lagged effect (peaks observed can have delay in it) , however it does not take into account the saturation of the marketing channel.
to address this issue, i played around with source code modifying the carryover implemetation such that it takes into account the saturation formulation as well.
I take the below formulation of the carryover:
and on this carryover implementation i apply the saturation component as below:
updated code logic is as below:
can you please suggest if this idea makes sense. and i would be happy if others would also like to test on their use case if needed