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 – A PyMC model
running_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.
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, ...)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
idata
Return the InferenceData object of the model.
supports_bayes
supports_ols
- __init__(data, formula, treatment_threshold, model=None, running_variable_name='x', epsilon=0.001, bandwidth=inf, **kwargs)[source]#
- classmethod __new__(*args, **kwargs)#