Unified ecosystem for mediation analysis in R
The mediationverse is a collection of R packages for mediation analysis, providing a unified ecosystem for:
- π§ Model fitting and extraction
- π Effect size computation
- π Confidence interval estimation
- π‘οΈ Sensitivity analysis
- π¬ Simulation studies
# Install mediationverse
pak::pak("data-wise/mediationverse")
# Load all packages at once
library(mediationverse)
# Fit mediation models
fit_m <- lm(M ~ X + C, data = mydata)
fit_y <- lm(Y ~ X + M + C, data = mydata)
med_data <- extract_mediation(fit_m, model_y = fit_y,
treatment = "X", mediator = "M")
# Get P_med effect size, confidence intervals, and sensitivity analysis
pmed_result <- compute_pmed(med_data)
ci_result <- ci(med_data, type = "dop")
sensitivity <- sensitivity_analysis(med_data)π View Full Dashboard | πΊοΈ Development Roadmap
| Package | Status | Build | Website | Role |
|---|---|---|---|---|
| medfit | Foundation | |||
| probmed | Effect Size | |||
| RMediation | Confidence Intervals | |||
| medrobust | Sensitivity Analysis | |||
| medsim | Simulation Infrastructure |
Current Quarter (Q4 2025): Ecosystem Development Phase
| Milestone | Status | Progress |
|---|---|---|
| medfit Phase 3 (Extraction) | β Complete | 100% |
| medfit Phase 4 (Model Fitting) | π§ In Progress | 60% |
| probmed Integration | β³ Pending | 0% |
| RMediation Integration | β³ Pending | 0% |
| medsim Core Implementation | β Complete | 100% |
| Comprehensive Documentation | β Complete | 100% |
Next Quarter (Q1 2026): Integration & Release
- Complete medfit Phase 4-5 (Bootstrap, Testing)
- Integrate probmed and RMediation with medfit
- CRAN submissions for medfit, probmed
- Finalize mediationverse meta-package
The mediationverse follows a modular architecture inspired by tidyverse and easystats:
βββββββββββββββ
β medfit β
β (Foundation)β
ββββββββ¬βββββββ
β
ββββββββββββββββΌβββββββββββββββ
β β β
βββββββΌββββββ ββββββΌβββββ ββββββββΌβββββββ
β probmed β βRMediationβ β medrobust β
β (P_med) β β(DOP,MBCO)β β(Sensitivity)β
βββββββββββββ βββββββββββ βββββββββββββββ
β
ββββββββΌβββββββ
β medsim β
β (Simulation)β
βββββββββββββββ
Purpose: Unified S7-based infrastructure for mediation analysis Status: Phase 4 in progress Provides:
- S7 classes (
MediationData,SerialMediationData,BootstrapResult) - Model extraction from lm/glm/lavaan
- Bootstrap inference (parametric, nonparametric, plugin)
- Type-safe data structures
Links: Website | GitHub | Issues
Purpose: Compute P_med, a scale-free probabilistic effect size Status: Stable, ready for integration Provides:
- P_med computation for continuous and binary outcomes
- GLM support (logistic, Poisson)
- Integration with lavaan and mediation packages
- Bootstrap confidence intervals
Links: Website | GitHub | Issues
Purpose: Asymmetric confidence intervals via Distribution of Product Status: Stable on CRAN Provides:
- Distribution of Product (DOP) method
- Monte Carlo (MC) confidence intervals
- MBCO bootstrap method
- Integration with standard R models
Links: CRAN | Website | GitHub
Purpose: Partial identification under differential misclassification Status: In development Provides:
- Partial identification bounds for NDE/NIE
- Data-driven falsification tests
- Synthetic data generation
- Publication-ready visualizations
Links: Website | GitHub | Issues
Purpose: Standardized infrastructure for Monte Carlo studies Status: Core implementation complete Provides:
- Environment-aware execution (local/HPC)
- Parallel processing with progress bars
- Ground truth caching
- Publication-ready figures and LaTeX tables
Links: Website | GitHub | Issues
# Install all packages
pak::pak("Data-Wise/mediationverse")
# Or install individually
pak::pak("Data-Wise/medfit")
pak::pak("Data-Wise/probmed")
pak::pak("Data-Wise/medrobust")
pak::pak("Data-Wise/medsim")
# RMediation from CRAN
install.packages("RMediation")# Planned for Q2-Q3 2026
install.packages("mediationverse")library(mediationverse)
#> ββ Attaching packages βββββββββββββββββββββββββββββββ mediationverse 0.0.0.9000 ββ
#> β medfit 0.1.0 β probmed 0.1.0
#> β RMediation 1.4.0 β medrobust 0.1.0
#> β medsim 0.1.0
#> ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ# List installed packages and versions
mediationverse_packages()
# Update all packages
mediationverse_update()
# Check for function conflicts
mediationverse_conflicts()library(mediationverse)
# 1. Fit mediation models (medfit)
fit_m <- lm(M ~ X + C, data = mydata)
fit_y <- lm(Y ~ X + M + C, data = mydata)
# 2. Extract mediation structure (medfit)
med_data <- extract_mediation(fit_m, model_y = fit_y,
treatment = "X", mediator = "M")
# 3. Bootstrap inference (medfit)
boot_result <- bootstrap_mediation(med_data, n_boot = 2000)
# 4. Compute probabilistic effect size (probmed)
pmed_result <- compute_pmed(med_data)
# 5. Get confidence intervals (RMediation)
ci_result <- ci(med_data, type = "dop")
# 6. Sensitivity analysis (medrobust)
robust_result <- sensitivity_analysis(med_data)
# 7. Run simulation study (medsim)
sim_results <- medsim_run(
method = my_method,
scenarios = medsim_scenarios_mediation(),
config = medsim_config("local")
)Following principles from tidyverse and easystats:
- Foundation Package: medfit provides shared S7 infrastructure
- Specialized Packages: Each package focuses on one methodological contribution
- Consistent API: Unified interfaces across all packages
- Type Safety: S7 classes ensure data integrity
- Low Dependencies: Minimal external dependencies for stability
- Comprehensive Testing: >90% code coverage across packages
- π Package Status Dashboard
- πΊοΈ Development Roadmap
- π€ Contributing Guide
- π Ecosystem Coordination
- medfit Documentation
- probmed Documentation
- RMediation Documentation
- medrobust Documentation
- medsim Documentation
The mediationverse is in active development. Contributions are welcome!
- π Report bugs: GitHub Issues
- π‘ Suggest features: Discussions
- π§ Contribute code: See our Contributing Guide
- π Improve docs: Submit pull requests
Development Workflow:
- Fork the repository
- Create a feature branch from
dev - Make your changes with tests
- Submit a pull request to
dev
See CONTRIBUTING.md for detailed guidelines.
If you use packages from the mediationverse in your research, please cite the individual packages:
Tofighi, D. (2025). medfit: Infrastructure for mediation analysis in R.
R package version 0.1.0. https://github.com/data-wise/medfit
Tofighi, D. (2025). probmed: Probabilistic effect sizes for mediation analysis.
R package version 0.1.0. https://github.com/data-wise/probmed
Full citations available via citation("packagename").
The mediationverse draws inspiration from:
- tidyverse - Cohesive data science packages
- easystats - Statistical modeling ecosystem
- mlr3 - Machine learning framework
Please note that the mediationverse project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
GPL (>= 3)
Maintainer: Davood Tofighi (dtofighi@gmail.com) ORCID: 0000-0001-8523-7776
Sources:
