MMMSummaryFactory.contributions#

MMMSummaryFactory.contributions(hdi_probs=None, component='channel', frequency=None, output_format=None)[source]#

Create contribution summary DataFrame.

Computes mean, median, and HDI bounds for contribution samples for the specified component type.

Parameters:
hdi_probssequence of float, optional

HDI probability levels (default: uses factory default)

component{“channel”, “control”, “seasonality”, “baseline”}, default “channel”

Which contribution component to summarize

frequency{“original”, “weekly”, “monthly”, “quarterly”, “yearly”, “all_time”}, optional

Time aggregation period (default: None, no aggregation)

output_format{“pandas”, “polars”}, optional

Output DataFrame format (default: uses factory default)

Returns:
pd.DataFrame or pl.DataFrame

Summary DataFrame with columns:

  • date: Time index

  • channel/control: Component identifier

  • mean: Mean contribution

  • median: Median contribution

  • abs_error_{prob}_lower: HDI lower bound for each prob

  • abs_error_{prob}_upper: HDI upper bound for each prob

Notes

Expects validated data. Call data.validate_or_raise() if you’ve modified the underlying idata before calling this method.

Examples

>>> df = mmm.summary.contributions()
>>> df = mmm.summary.contributions(component="control")
>>> df = mmm.summary.contributions(frequency="monthly", hdi_probs=[0.80, 0.94])