facebookexperimental / Robyn

Robyn is an experimental, AI/ML-powered and open sourced Marketing Mix Modeling (MMM) package from Meta Marketing Science. Our mission is to democratise modeling knowledge, inspire the industry through innovation, reduce human bias in the modeling process & build a strong open source marketing science community.
https://facebookexperimental.github.io/Robyn/
MIT License
1.07k stars 323 forks source link

Is there a way to turn off saturation curves and force linearity? #978

Open AdimDrewnik opened 1 month ago

AdimDrewnik commented 1 month ago

Is there a way to turn off saturation curves and force linearity? Is there an option for this? If not, is there a value of alpha and gamma I can force to be as close to linearity as possible?

gufengzhou commented 1 month ago

it's the first time i heard about this use case:) I'd advise that you deal with this assumption very carefully. Otherwise, when gamma is large / closer to 1, it means the inflexion point moves to higher spend level --> you'll have the first part (that is the more "linear" part) of the curve on your graph.

AdimDrewnik commented 1 month ago

Thank you. I assume this answer means there is no option to turn off saturation curves completely in Robyn and include media spends only with adstock as linear terms. I have few hundred data sets from different companies and I have never seen a convincing case of saturation when looking at the observed data. Also recently this open access data set with data for MMMs from about 100 real companies was published https://figshare.com/articles/dataset/Multi-Region_Marketing_Mix_Modeling_MMM_Dataset_for_Several_eCommerce_Brands/25314841/2 And in this data set I have found not a single case of any visible saturation in any media channel. That lack of empirical proof of presence of saturation convinced me to look for an option to model spend in a linear fashion. What is more, when I run Robyn models starting from different seeds I get as if random models. For example I run 100 different seeds on the same data set and same model structure and results are not stabilizing, they are not converging to stable average, they are all around the place.