MMMBuilder#

class pymc_marketing.mmm.types.MMMBuilder(*args, **kwargs)[source]#

Protocol for objects that can build MMM models.

Any object passed to TimeSliceCrossValidator.run(mmm=...) must implement this protocol.

Attributes:
None

Methods

build_model(X, y)

Build and return an MMM instance ready for fitting.

See also

pymc_marketing.mmm.TimeSliceCrossValidator

Cross-validator that uses this protocol.

Examples

Create a custom builder that implements the protocol:

>>> class MyMMMBuilder:
...     def __init__(self, config):
...         self.config = config
...
...     def build_model(self, X, y):
...         # Build and return an MMM instance
...         mmm = MMM(...)
...         return mmm
>>> builder = MyMMMBuilder(config={"channels": ["tv", "radio"]})
>>> cv = TimeSliceCrossValidator(
...     n_init=100, forecast_horizon=10, date_column="date"
... )
>>> combined_idata = cv.run(X, y, mmm=builder)

Methods

MMMBuilder.__init__(*args, **kwargs)

MMMBuilder.build_model(X, y)

Build and return an MMM instance.