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 docstringfor the full mathematical formulation and design rationale.- Parameters:
- model
MMM Fitted MMM model instance. Its
frozen_deterministicsproperty decides which deterministics are held at their posterior values during counterfactual evaluation.- idata
xr.DataTree, optional DataTree containing posterior samples and fit data. Exactly one of
idataanddatamust be provided.- data
MMMIDataWrapper, optional Existing data wrapper to reuse instead of building one from
idata.
- model
- Attributes:
- model
MMM The fitted model whose graph the counterfactuals are evaluated on.
- idata
xr.DataTree Posterior samples and fit data.
- data
MMMIDataWrapper Data wrapper for accessing model data.
- model
- Raises:
ValueErrorIf both
idataanddataare provided, or neither is; or if the idata coordinates do not match the fitted model’s.
Examples
>>> incr = mmm.incrementality >>> roas = incr.contribution_over_spend(frequency="quarterly") >>> cac = incr.spend_over_contribution(frequency="monthly")
Methods
Incrementality.__init__(model[, idata, data])Compute incremental channel contributions using counterfactual analysis.
Compute the incremental contribution of all channels together.
Incrementality.contribution_over_spend(frequency)Compute incremental contribution per unit of spend.
Compute marginal contribution per additional unit of spend.
Incrementality.spend_over_contribution(frequency)Compute spend per unit of incremental contribution.