pymc-labs / pymc-marketing

Bayesian marketing toolbox in PyMC. Media Mix (MMM), customer lifetime value (CLV), buy-till-you-die (BTYD) models and more.
https://www.pymc-marketing.io/
Apache License 2.0
667 stars 184 forks source link

Use the Bayesian model parameters for budget optimization #521

Open shuvayan opened 7 months ago

shuvayan commented 7 months ago

Hello,

Currently we are use michaelis-menten or the sigmoid curves to optimize the budget allocation. Is there a way to use the model parameters to predict on unseen data. In simpler terms, I have already built the model to parameterize the effects on adspend and have the bayesian model. Can I put in the new data (future adspend by channel budget) and optimize that using the posterior predictive distributions?

cetagostini commented 7 months ago

Hello @shuvayan,

I understand that you would like to predict the outcome of increasing your spending to a certain level and compare different spending scenarios to determine the most suitable one, correct? While we are working on adding the ability to make predictions based on unseen data, I believe that this process will manually replicate the optimizer.

As I see it, you will create different scenarios for different spending levels, and the response of your spending levels will be based on the transformations of the model. Additionally, you will also have to estimate how you think your control or seasonal variables will behave (To give all the input to the model for the prediction), and that will give you the final estimate of your target for the said scenario.

Once you decompose your estimated target and estimate the contribution at a certain level of spending for channel X (for the said scenario), the extra value obtained will be the same as that estimated by the curve. Because this curve estimates the contribution in the model.

Perhaps, I'm omitting something, but that's my way of seeing it. Let me know, if I can help!

shuvayan commented 7 months ago

Hello @cetagostini ,

Thank you for the reply and clear explanation of the problem. I believe you are right, ideally I would like to see if I allocate budget in n different ways across 'x' channels:

  1. What would be my predictions of revenue?
  2. What would be the response curves/channel contributions in each scenario?
  3. What would be the optimal allocation proportions across the 'x' channels according to the bayesian model parameters?

Does that make sense or am I not being lucid enough? :)

BTW, congratulations on the awesome library!!

shuvayan commented 2 months ago

Hello @cetagostini ,

If you can guide me on creating this enhancement, I can start and proceed accordingly. Thank you!