Running CausalPy Experiments
Use this skill when the CausalPy experiment class is already known or has just been selected by choosing-causalpy-methods. This skill is for execution: preparing data, instantiating the experiment, choosing a model backend, setting sane priors, inspecting outputs, plotting, and communicating results.
Workflow
- Load and validate a pandas
DataFrame with the data layout required by the chosen experiment.
- Choose a backend: PyMC models for posterior uncertainty and priors, or sklearn-compatible regressors where the experiment supports OLS/sklearn.
- Configure the model before construction. For PyMC, set
sample_kwargs and scale-aware priors when predictors or outcomes are not standardized.
- Instantiate the experiment. CausalPy experiments fit during initialization.
- Inspect outputs with
summary(), effect_summary(), print_coefficients(), and plot() only where the chosen experiment supports them.
- Run relevant sensitivity checks through
cp.Pipeline, cp.EstimateEffect, and cp.SensitivityAnalysis when robustness matters.
Model And Prior Guardrails
- Do not blindly accept diffuse default priors when predictors and outcomes are on very different scales. Either standardize the modeling variables or pass scale-aware priors to the PyMC model.
- For
cp.pymc_models.LinearRegression, configure priors for beta and the observation noise inside y_hat.
- For synthetic-control weight models, priors control donor-weight regularization and outcome noise; see
WeightedSumFitter, SoftmaxWeightedSumFitter, and SyntheticDifferenceInDifferencesWeightFitter.
- For
PropensityScore, standardize continuous confounders or use coefficient priors that imply plausible log-odds shifts.
- For
InstrumentalVariableRegression, priors are passed at the experiment level through priors=... and should reflect the scale of both the treatment-stage and outcome-stage regressions.
- Always check posterior diagnostics, prior predictive plausibility when available, coefficient magnitudes, counterfactual fit in the pre-period, and whether effect summaries are stable under reasonable prior alternatives.
Common Output Methods
experiment.summary(): Prints a method-specific summary where implemented.
experiment.effect_summary(): Returns a decision-ready structured effect summary where implemented.
experiment.plot(): Visualizes fitted values, counterfactuals, effects, or diagnostics where implemented.
experiment.print_coefficients(): Shows model coefficients for model-backed experiments.
result = cp.Pipeline(...).run(): Runs estimation, sensitivity checks, and report generation as a reproducible workflow.
Important Exceptions
InversePropensityWeighting.plot() is intentionally a stub. Use plot_ate() and plot_balance_ecdf() instead.
InversePropensityWeighting.effect_summary() is not implemented. Inspect ATE draws, overlap, balance, and weight stability instead.
InstrumentalVariable.plot(), summary(), and effect_summary() are not implemented, so inspect model outputs and first-stage/second-stage diagnostics directly.
PanelRegression.effect_summary() is not implemented because panel fixed-effects models report coefficient-level estimates rather than time-window impacts. Use summary(), print_coefficients(), and plot() or plot_coefficients().
References
- Scale-aware custom priors
- Difference-in-Differences
- Interrupted Time Series
- Piecewise Interrupted Time Series
- Synthetic Control
- Synthetic Difference-in-Differences
- Panel Regression
- PrePostNEGD
- Regression Discontinuity
- Regression Kink
- Staggered Difference-in-Differences
- Instrumental Variable
- Inverse Propensity Weighting
Source: pymc-labs/CausalPy — distributed by TomeVault.
1---2name: running-causalpy-experiments3description: Fit, summarize, plot, and interpret a chosen CausalPy experiment. Use after the causal method has been selected, including when configuring PyMC/sklearn models and scale-aware custom priors. Use when this capability is needed.4---56# Running CausalPy Experiments78Use this skill when the CausalPy experiment class is already known or has just been selected by `choosing-causalpy-methods`. This skill is for execution: preparing data, instantiating the experiment, choosing a model backend, setting sane priors, inspecting outputs, plotting, and communicating results.910## Workflow11121. Load and validate a pandas `DataFrame` with the data layout required by the chosen experiment.132. Choose a backend: PyMC models for posterior uncertainty and priors, or sklearn-compatible regressors where the experiment supports OLS/sklearn.143. Configure the model before construction. For PyMC, set `sample_kwargs` and scale-aware `priors` when predictors or outcomes are not standardized.154. Instantiate the experiment. CausalPy experiments fit during initialization.165. Inspect outputs with `summary()`, `effect_summary()`, `print_coefficients()`, and `plot()` only where the chosen experiment supports them.176. Run relevant sensitivity checks through `cp.Pipeline`, `cp.EstimateEffect`, and `cp.SensitivityAnalysis` when robustness matters.1819## Model And Prior Guardrails2021- Do not blindly accept diffuse default priors when predictors and outcomes are on very different scales. Either standardize the modeling variables or pass scale-aware priors to the PyMC model.22- For `cp.pymc_models.LinearRegression`, configure priors for `beta` and the observation noise inside `y_hat`.23- For synthetic-control weight models, priors control donor-weight regularization and outcome noise; see `WeightedSumFitter`, `SoftmaxWeightedSumFitter`, and `SyntheticDifferenceInDifferencesWeightFitter`.24- For `PropensityScore`, standardize continuous confounders or use coefficient priors that imply plausible log-odds shifts.25- For `InstrumentalVariableRegression`, priors are passed at the experiment level through `priors=...` and should reflect the scale of both the treatment-stage and outcome-stage regressions.26- Always check posterior diagnostics, prior predictive plausibility when available, coefficient magnitudes, counterfactual fit in the pre-period, and whether effect summaries are stable under reasonable prior alternatives.2728## Common Output Methods2930- `experiment.summary()`: Prints a method-specific summary where implemented.31- `experiment.effect_summary()`: Returns a decision-ready structured effect summary where implemented.32- `experiment.plot()`: Visualizes fitted values, counterfactuals, effects, or diagnostics where implemented.33- `experiment.print_coefficients()`: Shows model coefficients for model-backed experiments.34- `result = cp.Pipeline(...).run()`: Runs estimation, sensitivity checks, and report generation as a reproducible workflow.3536## Important Exceptions3738- `InversePropensityWeighting.plot()` is intentionally a stub. Use `plot_ate()` and `plot_balance_ecdf()` instead.39- `InversePropensityWeighting.effect_summary()` is not implemented. Inspect ATE draws, overlap, balance, and weight stability instead.40- `InstrumentalVariable.plot()`, `summary()`, and `effect_summary()` are not implemented, so inspect model outputs and first-stage/second-stage diagnostics directly.41- `PanelRegression.effect_summary()` is not implemented because panel fixed-effects models report coefficient-level estimates rather than time-window impacts. Use `summary()`, `print_coefficients()`, and `plot()` or `plot_coefficients()`.4243## References4445- [Scale-aware custom priors](reference/custom_priors.md)46- [Difference-in-Differences](reference/diff_in_diff.md)47- [Interrupted Time Series](reference/interrupted_time_series.md)48- [Piecewise Interrupted Time Series](reference/piecewise_its.md)49- [Synthetic Control](reference/synthetic_control.md)50- [Synthetic Difference-in-Differences](reference/synthetic_difference_in_differences.md)51- [Panel Regression](reference/panel_regression.md)52- [PrePostNEGD](reference/prepostnegd.md)53- [Regression Discontinuity](reference/regression_discontinuity.md)54- [Regression Kink](reference/regression_kink.md)55- [Staggered Difference-in-Differences](reference/staggered_did.md)56- [Instrumental Variable](reference/instrumental_variable.md)57- [Inverse Propensity Weighting](reference/inverse_propensity_weighting.md)5859---60> Source: [pymc-labs/CausalPy](https://github.com/pymc-labs/CausalPy) — distributed by [TomeVault](https://tomevault.io).61<!-- tomevault:4.0:skill_md:2026-07-03 -->