DifferenceInDifferences#
- class causalpy.experiments.diff_in_diff.DifferenceInDifferences[source]#
A class to analyse data from Difference in Difference settings.
Note
There is no pre/post intervention data distinction for DiD, we fit all the data available.
- Parameters:
data (
DataFrame) – A pandas dataframe.formula (
str) – A statistical model formula.time_variable_name (
str) – Name of the data column for the time variable.group_variable_name (
str) – Name of the data column for the group variable.post_treatment_variable_name (
str) – Name of the data column indicating post-treatment period. Defaults to “post_treatment”.model (
PyMCModel|RegressorMixin|None) – A PyMC model for difference in differences. Defaults to LinearRegression.
Example
>>> import causalpy as cp >>> df = cp.load_data("did") >>> seed = 42 >>> result = cp.DifferenceInDifferences( ... df, ... formula="y ~ 1 + group*post_treatment", ... time_variable_name="t", ... group_variable_name="group", ... model=cp.pymc_models.LinearRegression( ... sample_kwargs={ ... "target_accept": 0.95, ... "random_seed": seed, ... "progressbar": False, ... } ... ), ... )
Methods
DifferenceInDifferences.__init__(data, ...)Run the experiment algorithm: fit model, predict, and calculate causal impact.
DifferenceInDifferences.effect_summary(*[, ...])Generate a decision-ready summary of causal effects for Difference-in-Differences.
DifferenceInDifferences.fit(*args, **kwargs)DifferenceInDifferences.generate_report(*[, ...])Generate a self-contained HTML report for this experiment.
DifferenceInDifferences.get_plot_data(*args, ...)Recover the data of an experiment along with the prediction and causal impact information.
Return plot data for Bayesian models.
Return plot data for OLS models.
DifferenceInDifferences.plot(*args[, show])Plot the model.
Ask the model to print its coefficients.
Set optional maketables rendering options for this experiment.
DifferenceInDifferences.summary([round_to])Print summary of main results and model coefficients.
Attributes
idataReturn the InferenceData object of the model.
supports_bayessupports_olslabelsdata- __init__(data, formula, time_variable_name, group_variable_name, post_treatment_variable_name='post_treatment', model=None, **kwargs)[source]#
- classmethod __new__(*args, **kwargs)#