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.
- idata
xr.DataTree, optional InferenceData containing posterior samples and fit data. If not provided, uses the incrementality test result data. Default is None.
- frozen_deterministics
dict[str,str], optional Mapping of deterministic variable names to group names for freezing. Variables in this dict will have their values frozen during counterfactual simulations. Default is empty dict.
- model
- Attributes:
- idata
xr.DataTree Posterior samples and fit data.
- data
MMMIDataWrapper Data wrapper for accessing model data.
- idata
- Raises:
ValueErrorIf both
idataanddataare 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])Compute incremental channel contributions using counterfactual analysis.
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.