RegressionDiscontinuity#
- class causalpy.experiments.regression_discontinuity.RegressionDiscontinuity[source]#
A class to analyse sharp regression discontinuity experiments.
- Parameters:
data (
DataFrame) – A pandas dataframe.formula (
str) – A statistical model formula.treatment_threshold (
float) – A scalar threshold value at which the treatment is applied.model (
PyMCModel|RegressorMixin|None) – A PyMC or sklearn model. Defaults toLinearRegression.running_variable_name (
str) – The name of the predictor variable that the treatment threshold is based upon.epsilon (
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). Must be non-negative and less thanbandwidthifbandwidthis finite.**kwargs (
Any) – Additional keyword arguments forwarded toBaseExperiment.
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
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)Fit the underlying model.
RegressionDiscontinuity.generate_report(*[, ...])Generate a self-contained HTML report for this experiment.
RegressionDiscontinuity.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.
RegressionDiscontinuity.plot(*[, round_to, ...])Plot the regression discontinuity results.
Ask the model to print its coefficients.
Set optional maketables rendering options for this experiment.
RegressionDiscontinuity.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, treatment_threshold, model=None, running_variable_name='x', epsilon=0.001, bandwidth=inf, donut_hole=0.0, **kwargs)[source]#
- classmethod __new__(*args, **kwargs)#