SyntheticControl#

class causalpy.experiments.synthetic_control.SyntheticControl[source]#

The class for the synthetic control experiment.

Parameters:
  • data (DataFrame) – A pandas dataframe

  • treatment_time (Union[int, float, Timestamp]) – The time when treatment occurred, should be in reference to the data index

  • control_units (list[str]) – A list of control units to be used in the experiment

  • treated_units (list[str]) – A list of treated units to be used in the experiment

  • model – A PyMC model

Example

>>> import causalpy as cp
>>> df = cp.load_data("sc")
>>> treatment_time = 70
>>> seed = 42
>>> result = cp.SyntheticControl(
...     df,
...     treatment_time,
...     control_units=["a", "b", "c", "d", "e", "f", "g"],
...     treated_units=["actual"],
...     model=cp.pymc_models.WeightedSumFitter(
...         sample_kwargs={
...             "target_accept": 0.95,
...             "random_seed": seed,
...             "progressbar": False,
...         }
...     ),
... )

Methods

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

SyntheticControl.get_plot_data(*args, **kwargs)

Recover the data of an experiment along with the prediction and causal impact information.

SyntheticControl.get_plot_data_bayesian([...])

Recover the data of the PrePostFit experiment along with the prediction and causal impact information.

SyntheticControl.get_plot_data_ols()

Recover the data of the experiment along with the prediction and causal impact information.

SyntheticControl.input_validation(data, ...)

Validate the input data and model formula for correctness

SyntheticControl.plot(*args, **kwargs)

Plot the model.

SyntheticControl.print_coefficients([round_to])

Ask the model to print its coefficients.

SyntheticControl.summary([round_to])

Print summary of main results and model coefficients.

Attributes

idata

Return the InferenceData object of the model.

supports_bayes

supports_ols

__init__(data, treatment_time, control_units, treated_units, model=None, **kwargs)[source]#
Parameters:
Return type:

None

classmethod __new__(*args, **kwargs)#