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.**kwargs (
Any) – Additional keyword arguments forwarded toBaseExperiment.
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
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)Fit the underlying model.
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.
Validate the input data and model formula for correctness.
DifferenceInDifferences.plot(*[, round_to, ...])Plot the difference-in-differences results.
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
designDesign matrix as an
xr.Dataset.group_variable_nameName of the data column for the group variable.
idataReturn the InferenceData object of the model.
labelsCoefficient labels from the design matrix.
outcome_variable_nameName of the outcome variable.
post_treatment_variable_nameName of the data column indicating post-treatment period.
supports_bayessupports_olstime_variable_nameName of the data column for the time variable.
data- __init__(data, formula, time_variable_name, group_variable_name, post_treatment_variable_name='post_treatment', model=None, **kwargs)[source]#
- classmethod __new__(*args, **kwargs)#