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.bayesian_plot([round_to])Generate plot for regression discontinuity designs.
Validate the input data and model formula for correctness
RegressionDiscontinuity.ols_plot([round_to])Generate plot for regression discontinuity designs.
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_ols- __init__(data, formula, treatment_threshold, model=None, running_variable_name='x', epsilon=0.001, bandwidth=inf, **kwargs)[source]#
- __new__(**kwargs)#