Parameters initialization

@pymc-bot

Hi everyone,

I’m working on a PoC for an automotive equipment company using pymc-marketing to build a MMM model in Python.

Our target variable is revenues, and the inputs are media channels plus control variables. We have already performed exploratory analysis to remove irrelevant or highly correlated predictors.

I have a couple of questions:

  1. Is it possible to set different prior distributions for specific control variables, rather than using the same prior for all? For example, to constrain some variables to have only positive effects on the target. Is this considered a good practice, or is it better to keep priors uniform across controls?

  2. When control variables are highly correlated (e.g., branded vs. generic search volumes), is it better to keep only one to reduce noise, or is there a recommended way to handle correlation in pymc-marketing?

Thank you in advance for any guidance!

Hey @Aguada

  1. Indeed, you’ll need to make a bit of custom adjustments but take a look here to set joint priors. All depends on your use case, if you are doing a POC keeping the same prior for all should be good enough.
  2. The best way to handle those issue is understanding your causal structure, you can make causal discovery (we don’t cover that in pymc-marketing) and then based on your findings set your model to control only to the variables which block the causal path to capture the precise effect you are looking for. Here is a causal identification example. But I’ll recommend to read about causal discovery before going into it. There is not universal way to control for correlation and get causal estimations right, you must understand your ecosystem to be able to understand what to control on and even in the presence of noise get more sensible estimates.

Hope it helps!

1 Like