MMMSummaryFactory#

class pymc_marketing.mmm.summary.MMMSummaryFactory(data, model=None, hdi_probs=(0.94,), output_format='pandas')[source]#

Factory for creating summary DataFrames from MMM data.

Provides a convenient interface for generating summary DataFrames with shared default settings. Accepts data wrapper (required) and optionally the MMM model to access transformations.

The factory is immutable (frozen dataclass). To create a factory with different settings, instantiate a new one directly.

Parameters:
dataMMMIDataWrapper

Data wrapper containing idata and schema (required)

modelMMM, optional

Fitted MMM model with transformations (saturation, adstock). Required for saturation_curves() and adstock_curves() methods.

hdi_probssequence of float, optional

Default HDI probability levels (default: (0.94,)). Accepts list or tuple; stored internally as tuple.

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

Default output DataFrame format

Examples

>>> # With data only (for most summaries)
>>> factory = MMMSummaryFactory(mmm.data)
>>> contributions_df = factory.contributions()
>>>
>>> # With model (for transformation curves)
>>> factory = MMMSummaryFactory(mmm.data, model=mmm)
>>> saturation_df = factory.saturation_curves()
>>>
>>> # Via model property (recommended - includes model automatically)
>>> factory = mmm.summary
>>> saturation_df = factory.saturation_curves()
>>>
>>> # Create new factory with different settings (direct instantiation)
>>> polars_factory = MMMSummaryFactory(
...     mmm.data, model=mmm, output_format="polars", hdi_probs=[0.80, 0.94]
... )
>>> df = polars_factory.contributions()  # Uses configured defaults

Methods

MMMSummaryFactory.__init__(data[, model, ...])

MMMSummaryFactory.adstock_curves([...])

Create adstock curves summary DataFrame.

MMMSummaryFactory.change_over_time([...])

Create change over time summary with per-date percentage changes.

MMMSummaryFactory.channel_spend([output_format])

Create channel spend DataFrame (raw data, no HDI).

MMMSummaryFactory.contributions([hdi_probs, ...])

Create contribution summary DataFrame.

MMMSummaryFactory.posterior_predictive([...])

Create posterior predictive summary DataFrame.

MMMSummaryFactory.roas([hdi_probs, ...])

Create ROAS (Return on Ad Spend) summary DataFrame.

MMMSummaryFactory.saturation_curves([...])

Create saturation curves summary DataFrame.

MMMSummaryFactory.total_contribution([...])

Create total contribution summary (all effects combined).

Attributes

hdi_probs

model

output_format

data