sensitivity#
Sensitivity namespace — sensitivity analysis plots.
SensitivityPlots provides three methods to visualise the results of a
sensitivity sweep run via SensitivityAnalysis:
analysis()— raw effect curves from the input sweepuplift()— uplift relative to a baseline (with reference lines)marginal()— marginal effects along the sweep
The class is normally accessed through the mmm.plots.sensitivity shortcut on a
fitted MMM instance, but it can also be constructed
directly from any MMMIDataWrapper.
Examples#
# sensitivity analysis
sweeps = np.linspace(0.1, 2.0, 100)
mmm.sensitivity.run_sweep(
sweep_values=sweeps,
var_input="channel_data",
var_names="channel_contribution",
extend_idata=True,
)
sp = mmm.plots.sensitivity
fig, axes = sp.analysis()
# uplift curve
ref = mmm.idata.posterior.channel_contribution.sum(["channel", "date"]).mean(
["chain", "draw"]
)
mmm.sensitivity.compute_uplift_curve_respect_to_base(
results=mmm.idata.sensitivity_analysis["x"],
ref=ref,
extend_idata=True,
)
fig, axes = sp.uplift(aggregation={"sum": "channel"}, figsize=(10, 4))
# marginal contribution curve
mmm.sensitivity.compute_marginal_effects(
results=mmm.idata.sensitivity_analysis["uplift_curve"],
extend_idata=True,
)
fig, axes = sp.marginal(aggregation={"sum": "channel"})
Classes
|
Sensitivity analysis plots (effect, uplift, and marginal curves). |