Incrementality#

class pymc_marketing.mmm.incrementality.Incrementality(model, idata=None, data=None)[source]#

Incrementality and counterfactual analysis for MMM models.

Computes incremental channel contributions by comparing predictions with actual spend vs. counterfactual (perturbed) spend, accounting for adstock carryover effects. See the module docstring for the full mathematical formulation and design rationale.

Parameters:
modelMMM

Fitted MMM model instance.

idataaz.InferenceData, optional

InferenceData containing posterior samples and fit data. Mutually exclusive with data.

dataMMMIDataWrapper, optional

Pre-built data wrapper. When provided, idata is taken from data.idata and no re-wrapping occurs. Mutually exclusive with idata.

Attributes:
modelMMM

The fitted MMM model.

idataaz.InferenceData

Posterior samples and fit data.

dataMMMIDataWrapper

Data wrapper for accessing model data.

Raises:
ValueError

If both idata and data are provided, or neither is.

Examples

>>> incr = mmm.incrementality
>>> roas = incr.contribution_over_spend(frequency="quarterly")
>>> cac = incr.spend_over_contribution(frequency="monthly")

Methods

Incrementality.__init__(model[, idata, data])

Incrementality.compute_incremental_contribution(...)

Compute incremental channel contributions using counterfactual analysis.

Incrementality.contribution_over_spend(frequency)

Compute incremental contribution per unit of spend.

Incrementality.marginal_contribution_over_spend(...)

Compute marginal contribution per additional unit of spend.

Incrementality.spend_over_contribution(frequency)

Compute spend per unit of incremental contribution.