'dayofyear' in sample_posterior_predictive Call in PyMC-Marketing

Title:

KeyError: ‘dayofyear’ in sample_posterior_predictive Call in PyMC-Marketing

Question:

Hello, I’m using PyMC-Marketing to build a Marketing Mix Model (MMM). While running sample_posterior_predictive on my model, I encountered a KeyError: 'dayofyear'. I would appreciate any help or guidance on resolving this issue.

Environment:

  • PyMC-Marketing version: 0.10.0
  • PyMC version: 5.15.1
  • Python version: 3.12
  • System: MacOS/Windows/Linux (specify your system)

Problem Description:

After setting up my model, I attempted to call sample_posterior_predictive using a new DataFrame (temp) as input data. However, I received the following error:

Error Message (partial):

json

{
	"name": "KeyError",
	"message": "'dayofyear'",
	"stack": "---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
File ~/work/.venv/lib/python3.12/site-packages/pymc/model/core.py:1564, in Model.__getitem__(self, key)
   1563 try:
-> 1564     return self.named_vars[self.name_for(key)]
   1565 except KeyError:

KeyError: 'dayofyear'
...
KeyError: 'dayofyear'

Code Snippet:

Here’s the code where the error occurs. I’m using a DataFrame called temp as the input without the dayofyear variable.

mmm.sample_posterior_predictive(temp,
                                original_scale=False,
                                var_names=["control_contributions"])

Attempts to Resolve:

  1. I tried adding a dayofyear variable to temp, but it does not appear to be defined in mmm.named_vars.
  2. I inspected control_contributions but found no explicit reference to dayofyear.
  3. I considered that the model might have defined seasonality based on dayofyear during initialization, but I could not find a clear indication in the setup code.

Questions:

  1. Does PyMC-Marketing require the dayofyear variable for seasonality in posterior predictive sampling, or is there a recommended approach to include this variable if necessary?
  2. I’m unsure why dayofyear is needed in the control_contributions variable, as I couldn’t find a direct reference to it. Could you clarify typical scenarios where this variable might be expected?
  3. Is there a way to configure the model to make dayofyear optional in the posterior predictive sampling?

Additional Details:

  • I intended to include seasonality and trend in the model setup, but dayofyear was not explicitly mentioned.
  • Due to data sensitivity, I can share relevant code snippets if needed.

Thank you for your help!

This is my first time posting a question, so I would appreciate any guidance or patience with my query. If additional information is needed, please feel free to ask.