Package: ballast 0.6.1

Adam Sullivan

ballast: Stress-Test a Pre-Specified Mixed Model for Repeated Measures

Refits one pre-specified mixed model for repeated measures (MMRM) under families of data and analytic perturbations (covariance structure, degrees-of-freedom method and variance estimator, covariate set, analysis population, alternative analysis data sets, leave-one-out deletions, crossed specification grids, re-randomisation tests, delta-adjusted and reference-based multiple imputation, and alternative estimators) and judges every refit against the pre-specified estimate, confidence interval and p-value. Classifies the result as robust, sensitive or fragile, with a separate flag for marginal significance, and estimates by simulation the probability that a planned design gives a significant and robust result. Fitting uses 'mmrm' (Sabanes Bove et al., 2024, <https://openpharma.github.io/mmrm/>) with 'SAS' 'PROC MIXED' conventions for the least-squares-mean contrast, Kenward-Roger adjustment and the corrected Akaike criterion. Reference-based multiple imputation follows Carpenter, Roger and Kenward (2013) <doi:10.1080/10543406.2013.834911> and was checked against 'rbmi' (Gower-Page, Noci and Wolbers, 2022) <doi:10.21105/joss.04251>.

Authors:Adam Sullivan [aut, cre, cph], Nathan Hogan [ctb], Capricor Therapeutics [fnd]

ballast_0.6.1.tar.gz
ballast_0.6.1.zip(r-4.7-any)ballast_0.6.1.zip(r-4.6-any)
ballast_0.6.1.tar.gz(r-4.7-any)ballast_0.6.1.tar.gz(r-4.6-any)
ballast_0.6.1.tgz(r-4.6-emscripten)
manual.pdf |manual.html✨
DESCRIPTION |NEWS
card.svg |card.png
ballast/json (API)

# Install 'ballast' in R:
install.packages('ballast', repos = c('https://cran.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/sullivanstatistics/ballast/issues

On CRAN:

Conda:

3.48 score 44 exports 44 dependencies

Last updated from:44a60e9aa2. Checks:6 OK. Indexed: yes.

TargetResultTimeFilesSyslog
linux-develOK159
source / vignettesOK313
linux-releaseOK173
windows-develOK124
windows-releaseOK124
wasm-releaseOK106

Exports:default_inferencemask_idsplot_pcdfplot_pcurveplot_pstripplot_swarmrun_planrun_planssimulate_trialspec_updatestandard_planstress_calibratestress_censusstress_covariancestress_covariatesstress_curvestress_datastress_designstress_estimandstress_estimatorstress_explainstress_fitstress_fragilitystress_gridstress_htmlstress_inferencestress_logstress_loostress_permutestress_planstress_populationstress_rankteststress_referencestress_reportstress_sapstress_specstress_spec_adamstress_spec_mmrmstress_tablesstress_tippingstress_verdictstress_visitsstress_weightstipping_point

Dependencies:backportsbriocallrcheckmateclicrayondescdiffobjevaluatefsgenericsgluejsonlitelatticelifecyclemagrittrMASSMatrixmmrmnlmeotelpillarpkgbuildpkgconfigpkgloadpraiseprocessxpsR6rbibutilsRcppRcppEigenRdpackrlangrprojrootstringistringrtestthattibbleTMButf8vctrswaldowithr

Designing for a robust result
What the cells report | A small illustration | Writing it into the analysis plan | Assumptions in the simulator

Last update: 2026-10-30
Started: 2026-10-30

For SAS users: reproducing PROC MIXED and PROC MI conventions
A spec in SAS terms | Things that do not reproduce exactly

Last update: 2026-10-30
Started: 2026-10-30

Interpreting the verdict
Definitions | Sensitivity versus supplementary | The counting rule | What the simulation shows | The deletion search | Explaining a crossing

Last update: 2026-10-30
Started: 2026-10-30

Missing data: reference-based and delta-adjusted imputation
Reference-based imputation | Delta adjustment | Intercurrent events

Last update: 2026-10-30
Started: 2026-10-30

Quickstart: stress-testing a pre-specified MMRM
The pre-specified analysis | Families | Census, verdict and figures | Pre-specify and run in one call

Last update: 2026-10-30
Started: 2026-10-30

Validation summary
Tolerances | Gates against the SAS reference | Cross-check against rbmi | Conventions needed to agree with SAS | Reproducibility | Test suite

Last update: 2026-10-30
Started: 2026-10-30

Readme and manuals

Help Manual

Help pageTopics
Default inference settings for 'stress_inference()'default_inference
Mask subject identifiers in a censusmask_ids
Empirical distribution of the p-values across a censusplot_pcdf
Plot p-value curves over a continuous perturbationplot_pcurve
Strip plot of p-values after each deletionplot_pstrip
Bubble-swarm plot of a census against the no-difference lineplot_swarm
Plot a census: one row per family on the percent-of-base axisplot.stress_census
Plot power and robustness power against the sample sizeplot.stress_design
Run a pre-specified stress testrun_plan
Run several plans (several endpoints or comparisons) and comparerun_plans
Simulate a two-arm longitudinal trialsimulate_trial
Modify a stress specspec_update
The standard stress teststandard_plan
Pre-trial calibration of the stress teststress_calibrate
Assemble a census of perturbations against the base analysisstress_census
Perturbation family: within-subject covariance structurestress_covariance
Perturbation family: covariate setstress_covariates
Perturbation family: a curve over a continuous data perturbationstress_curve
Perturbation family: alternative analysis data setsstress_data
Size a trial for a robust resultprint.stress_design stress_design
Perturbation family: intercurrent-event strategies (ICH E9(R1))stress_estimand
Perturbation family: estimator classstress_estimator
Explain why an alternative analysis movedstress_explain
Fit one MMRM and return one rowstress_fit
Smallest set of subjects whose removal changes the conclusionstress_fragility
Perturbation family: crossed specification gridstress_grid
Interactive HTML reportstress_html
Perturbation family: degrees-of-freedom method and variance estimatorstress_inference
Write the run log for an audit trailstress_log
Perturbation family: leave-one-out deletionsstress_loo
Perturbation family: re-randomisation (permutation) teststress_permute
Pre-specify a stress teststress_plan
Perturbation family: analysis populationstress_population
Perturbation family: rank tests at the contrast visitstress_ranktest
Perturbation family: reference-based multiple imputationstress_reference
Write a stress-test reportstress_report
Statistical-analysis-plan text for a stress teststress_sap
Define the pre-specified MMRM to stress-teststress_spec
Build a stress spec from an ADaM basic data structurestress_spec_adam
Build a stress spec from a fitted mmrm modelstress_spec_mmrm
Write regulatory-style tables and the censusstress_tables
Perturbation family: delta-adjusted multiple imputation (tipping point)stress_tipping
Classify the census: robust, sensitive or fragile, and marginalstress_verdict
Perturbation family: the contrast at every visitstress_visits
Perturbation family: least-squares-mean weightingstress_weights
Summarise a census by familysummary.stress_census
Find where a p-value curve crosses alphatipping_point