Two function families live here:
Details
Treatment-effect estimators (legacy)
estimate_ate()– IPW-weighted OLS ATE.estimate_plr()– Partially Linear Regression via DoubleML; falls back to base R cross-fit ridge.estimate_pliv()– Partially Linear IV (LATE) via DoubleML; falls back to 2SLS.estimate_ate_gcomputation()– G-computation ATE. Thin wrapper overstdReg::stdGlm()when installed; falls back to inline bootstrap standardisation otherwise.sensitivity_rosenbaum()– Rosenbaum bounds. Thin wrapper overrbounds::psens()when installed; otherwise normal-approximation Wilcoxon signed-rank bounds.e_value()– VanderWeele-Ding E-value. Thin wrapper overEValue::evalues.OLS()when installed; otherwise the closed-form continuous-scale RR proxy.
Marginal-effects extenders (Phase 1.j additions; thin wrappers over Vincent Arel-Bundock's universal API and the emmeans / broom ecosystems):
morie_effects_predictions()->marginaleffects::predictions().morie_effects_comparisons()->marginaleffects::comparisons().morie_effects_tidy()->broom::tidy()(falls back to asummary()-based tidy frame when broom is unavailable).
Each extender requires the underlying CRAN package and signals a
clean stop() when it is missing, leaving the upstream model
object untouched. They return the underlying package's native
object verbatim so downstream code (e.g. ggplot2 plumbing,
rmorie's MRM step) keeps working with the canonical API.