MMM.experiment#
- MMM.experiment(experiment_type, data, **kwargs)[source]#
Run a CausalPy causal inference experiment.
Provides a convenient interface to run quasi-experimental analyses (Interrupted Time Series, Synthetic Control, Difference-in-Differences, Regression Discontinuity) using CausalPy, with results that can be directly converted to lift test calibration data.
- Parameters:
- experiment_type
strorExperimentType The type of experiment to run. Accepts string aliases:
"its": Interrupted Time Series"sc": Synthetic Control"did": Difference-in-Differences"rd": Regression Discontinuity
- data
pd.DataFrame The experiment data to pass to CausalPy.
- **kwargs
Additional keyword arguments passed to the CausalPy experiment constructor. Common arguments include:
treatment_time: When the treatment/intervention started.formula: Patsy formula for the model specification.model: A CausalPy model (e.g.causalpy.pymc_models.LinearRegression()).
- experiment_type
- Returns:
ExperimentResultA wrapped result with methods for summarizing, plotting, and converting to lift test format via
ExperimentResult.to_lift_test().
- Raises:
ImportErrorIf
causalpyis not installed. Install it viapip install pymc-marketing[experiment].ValueErrorIf
experiment_typeis not a valid experiment type.
See also
add_lift_testAdd an experiment result as lift test calibration.
add_lift_test_measurementsAdd raw lift test measurements.
ExperimentResultThe result wrapper class.
Examples
Run a Synthetic Control experiment and use it to calibrate the MMM:
import causalpy as cp result = mmm.experiment( experiment_type="sc", data=df_experiment, treatment_time=70, formula="actual ~ 0 + a + b + c", model=cp.pymc_models.WeightedSumFitter( sample_kwargs={"random_seed": 42} ), ) # Visualize the experiment results result.summary() fig, ax = result.plot() # Convert to lift test and add to model mmm.add_lift_test( experiment=result, channel="tv", x=1000.0, delta_x=200.0, )