MMMIDataWrapper.get_elementwise_roas#

MMMIDataWrapper.get_elementwise_roas(original_scale=True)[source]#

Compute element-wise ROAS (Return on Ad Spend) for each channel.

ROAS = contribution / spend for each channel at each time point. Does NOT account for adstock carryover effects. For true incremental ROAS, use pymc_marketing.mmm.incrementality.Incrementality.contribution_over_spend() or pymc_marketing.mmm.summary.MMMSummaryFactory.roas() with method="incremental".

Parameters:
original_scalebool, default True

Whether to return contributions in original scale.

Returns:
xr.DataArray

ROAS values with dims (chain, draw, date, channel) plus any custom dims. Zero spend values result in NaN to avoid division by zero.

Examples

>>> roas = mmm.data.get_elementwise_roas()
>>> roas_mean = roas.mean(dim=["chain", "draw"])