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.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.
Validate the input data and model formula for correctness
DifferenceInDifferences.plot(*args[, show])Plot the model.
Ask the model to print its coefficients.
DifferenceInDifferences.summary([round_to])Print summary of main results and model coefficients.
Attributes
idataReturn the InferenceData object of the model.
supports_bayessupports_olslabels- __init__(data, formula, time_variable_name, group_variable_name, post_treatment_variable_name='post_treatment', model=None, **kwargs)[source]#
- classmethod __new__(*args, **kwargs)#