RegressionDiscontinuity#
- class causalpy.experiments.regression_discontinuity.RegressionDiscontinuity[source]#
A class to analyse sharp regression discontinuity experiments.
- Parameters:
data (
DataFrame) – A pandas dataframeformula (
str) – A statistical model formulatreatment_threshold (
float) – A scalar threshold value at which the treatment is appliedmodel (
PyMCModel|RegressorMixin|None) – A PyMC modelrunning_variable_name (
str) – The name of the predictor variable that the treatment threshold is based uponepsilon (
float) – A small scalar value which determines how far above and below the treatment threshold to evaluate the causal impact.bandwidth (
float) – Data outside of the bandwidth (relative to the discontinuity) is not used to fit the model.donut_hole (
float) – Observations within this distance from the treatment threshold are excluded from model fitting. Used as a robustness check when observations closest to the threshold may be problematic (e.g., due to manipulation or heaping). Defaults to 0.0 (no exclusion). Must be non-negative and less than bandwidth if bandwidth is finite.
Example
>>> import causalpy as cp >>> df = cp.load_data("rd") >>> seed = 42 >>> result = cp.RegressionDiscontinuity( ... df, ... formula="y ~ 1 + x + treated + x:treated", ... model=cp.pymc_models.LinearRegression( ... sample_kwargs={ ... "draws": 100, ... "target_accept": 0.95, ... "random_seed": seed, ... "progressbar": False, ... }, ... ), ... treatment_threshold=0.5, ... )
Methods
RegressionDiscontinuity.__init__(data, ...)Run the experiment algorithm: fit model, predict, and calculate discontinuity.
RegressionDiscontinuity.effect_summary(*[, ...])Generate a decision-ready summary of causal effects for Regression Discontinuity.
RegressionDiscontinuity.fit(*args, **kwargs)RegressionDiscontinuity.get_plot_data(*args, ...)Recover the data of an experiment along with the prediction and causal impact information.
Abstract method for recovering plot data.
Abstract method for recovering plot data.
Validate the input data and model formula for correctness
RegressionDiscontinuity.plot(*args, **kwargs)Plot the model.
Ask the model to print its coefficients.
RegressionDiscontinuity.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, treatment_threshold, model=None, running_variable_name='x', epsilon=0.001, bandwidth=inf, donut_hole=0.0, **kwargs)[source]#
- classmethod __new__(*args, **kwargs)#