I’m attempting to use PyMC to implement a Gaussian Process. My goal is to model the baseline and seasonality of a marketing mix model (MMM). Specifically, I’d like to use a periodic kernel along with a Matern/ExpQuad kernel.

After reading your documentation, I understand that I can’t use the HSGP class with a periodic kernel. Therefore, the only way to implement the described kernel would be to use the Latent class, which, however, requires enormous computational times.

I have some questions regarding this:

Is the reasoning I’ve outlined above correct?

Is there a way to achieve the above but with an approximate method?

Once the Gaussian process is “trained,” is there an easy way to use it for making predictions? I know about gp.conditional, but are there any alternatives?

Does it make sense to use a Gaussian process for out-of-sample predictions?

You’re correct about Latent possibly being too slow. Take a look at the pm.gp.HSGPPeriodic class, I think it’s what you need.

It does make sense to use a GP for out of sample predictions. Check the docstring for HSGP and HSGPPeriodic for instructions on using pm.set_data to make predictions, bypassing gp.conditional.

Hope that helps, please ask again if you have any more questions.