Open ColtAllen opened 1 year ago
Nice idea! I have not gone into the details, but we already have a function to generate Fourier modes a la Prophet https://github.com/pymc-labs/pymc-marketing/blob/main/pymc_marketing/mmm/utils.py#L6-#L35 ;) I plan to incorporate seasonality for the current mmm class.
Section 6 in https://www.brucehardie.com/notes/040/time-varying_covariates_in_BGNBD.pdf describes how
BetaGeoModel
can be extended to account for seasonality. I'm pretty sure this same methodology can be applied to theParetoNBDModel
and other models. Not gonna lie though - this will be involved and span multiple PRs.Expanding
clv.utils.clv_summary()
for seasonality periods (and transactions within those periods) demands considerablepandas
knowledge and will be the hardest part of this. Prophet might be a useful codebase for ideas. For the models themselves, hopefullylogp
can be wrapped in apytensor.switch()
statement to go back & forth between the high/low/etc. seasons.