MMRMG01
Plots for Mixed-Effect Model Repeated Measures Analysis
Given an MMRM fitted with s_mmrm, g_mmrm_lsmeans displays for each visit the adjusted means within group and/or difference in adjusted means between groups. g_mmrm_diagnostic displays marginal residual plots for evaluating model fit.
Least Squares Means:
Estimates Within Groups
Considering the treatment variable in the model
Considering the treatment variable in the model, with lines
Considering the treatment variable in the model, with statistics table
Least Squares Means:
Contrasts Between Groups
Users can choose to display both estimates and contrasts together by running g_mmrm_lsmeans(mmrm_results).
Model Diagnostics: Marginal
Fitted Values vs. Residuals
Model Diagnostics: Normality
of Marginal Residuals
Data Setup and
Model Fitting
Code
library(dplyr)
library(tern.mmrm)
library(nestcolor)
adsl <- random.cdisc.data::cadsl
adqs <- random.cdisc.data::cadqs
adqs_f <- adqs %>%
dplyr::filter(PARAMCD == "FKSI-FWB" & !AVISIT %in% c("BASELINE")) %>%
droplevels() %>%
dplyr::mutate(ARM = factor(ARM, levels = c("B: Placebo", "A: Drug X", "C: Combination"))) %>%
dplyr::mutate(AVISITN = rank(AVISITN) %>% as.factor() %>% as.numeric() %>% as.factor())
mmrm_results <- fit_mmrm(
vars = list(
response = "AVAL",
covariates = c("STRATA2"),
id = "USUBJID",
arm = "ARM",
visit = "AVISIT"
),
data = adqs_f
)
teal App
Code
library(teal.modules.clinical)
## Data reproducible code
data <- teal_data()
data <- within(data, {
library(dplyr)
ADSL <- random.cdisc.data::cadsl
ADQS <- random.cdisc.data::cadqs %>%
filter(ABLFL != "Y" & ABLFL2 != "Y") %>%
filter(AVISIT %in% c("WEEK 1 DAY 8", "WEEK 2 DAY 15", "WEEK 3 DAY 22")) %>%
mutate(
AVISIT = as.factor(AVISIT),
AVISITN = rank(AVISITN) %>%
as.factor() %>%
as.numeric() %>%
as.factor() # making consecutive numeric factor
)
})
join_keys(data) <- default_cdisc_join_keys[c("ADSL", "ADQS")]
arm_ref_comp <- list(
ARMCD = list(
ref = "ARM A",
comp = c("ARM B", "ARM C")
)
)
## Reusable Configuration For Modules
ADQS <- data[["ADQS"]]
## Setup App
app <- init(
data = data,
modules = modules(
tm_a_mmrm(
label = "MMRM",
dataname = "ADQS",
aval_var = choices_selected(c("AVAL", "CHG"), "AVAL"),
id_var = choices_selected(c("USUBJID", "SUBJID"), "USUBJID"),
arm_var = choices_selected(c("ARM", "ARMCD"), "ARMCD"),
visit_var = choices_selected(c("AVISIT", "AVISITN"), "AVISIT"),
arm_ref_comp = arm_ref_comp,
paramcd = choices_selected(
choices = value_choices(ADQS, "PARAMCD", "PARAM"),
selected = "FKSI-FWB"
),
cov_var = choices_selected(c("BASE", "AGE", "SEX", "BASE:AVISIT"), NULL),
conf_level = choices_selected(c(0.95, 0.9, 0.8), 0.95)
)
)
)
shinyApp(app$ui, app$server)
Reproducibility
Timestamp
[1] "2026-06-17 18:51:16 UTC"
Session Info
─ Session info ───────────────────────────────────────────────────────────────
setting value
version R version 4.5.2 (2025-10-31)
os Ubuntu 24.04.4 LTS
system x86_64, linux-gnu
ui X11
language (EN)
collate en_US.UTF-8
ctype en_US.UTF-8
tz Etc/UTC
date 2026-06-17
pandoc 3.9 @ /usr/bin/ (via rmarkdown)
quarto 1.9.38 @ /usr/local/bin/quarto
─ Packages ───────────────────────────────────────────────────────────────────
package * version date (UTC) lib source
backports 1.5.1 2026-04-03 [1] CRAN (R 4.5.2)
brio 1.1.5 2024-04-24 [1] CRAN (R 4.5.2)
broom 1.0.13 2026-05-14 [1] CRAN (R 4.5.2)
bsicons 0.1.2 2023-11-04 [1] CRAN (R 4.5.2)
bslib 0.11.0 2026-05-16 [1] CRAN (R 4.5.2)
cachem 1.1.0 2024-05-16 [1] CRAN (R 4.5.2)
callr 3.8.0 2026-06-05 [1] CRAN (R 4.5.2)
checkmate 2.3.4 2026-02-03 [1] CRAN (R 4.5.2)
chromote 0.5.1 2025-04-24 [1] CRAN (R 4.5.2)
cli 3.6.6 2026-04-09 [1] CRAN (R 4.5.2)
coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.5.2)
codetools 0.2-20 2024-03-31 [2] CRAN (R 4.5.2)
cowplot 1.2.0 2025-07-07 [1] CRAN (R 4.5.2)
curl 7.1.0 2026-04-22 [1] CRAN (R 4.5.2)
dichromat 2.0-0.1 2022-05-02 [1] CRAN (R 4.5.2)
digest 0.6.39 2025-11-19 [1] CRAN (R 4.5.2)
dplyr * 1.2.1 2026-04-03 [1] CRAN (R 4.5.2)
emmeans 2.0.3 2026-04-09 [1] CRAN (R 4.5.2)
estimability 1.5.1 2024-05-12 [1] CRAN (R 4.5.2)
evaluate 1.0.5 2025-08-27 [1] CRAN (R 4.5.2)
farver 2.1.2 2024-05-13 [1] CRAN (R 4.5.2)
fastmap 1.2.0 2024-05-15 [1] CRAN (R 4.5.2)
fontawesome 0.5.3 2024-11-16 [1] CRAN (R 4.5.2)
formatR 1.14 2023-01-17 [1] CRAN (R 4.5.2)
formatters * 0.5.12 2025-12-08 [1] CRAN (R 4.5.2)
fs 2.1.0 2026-04-18 [1] CRAN (R 4.5.2)
generics 0.1.4 2025-05-09 [1] CRAN (R 4.5.2)
ggplot2 4.0.3 2026-04-22 [1] CRAN (R 4.5.2)
glue 1.8.1 2026-04-17 [1] CRAN (R 4.5.2)
gtable 0.3.6 2024-10-25 [1] CRAN (R 4.5.2)
htmltools 0.5.9 2025-12-04 [1] CRAN (R 4.5.2)
htmlwidgets 1.6.4 2023-12-06 [1] CRAN (R 4.5.2)
httpuv 1.6.17 2026-03-18 [1] CRAN (R 4.5.2)
jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.5.2)
jsonlite 2.0.0 2025-03-27 [1] CRAN (R 4.5.2)
knitr 1.51 2025-12-20 [1] CRAN (R 4.5.2)
labeling 0.4.3 2023-08-29 [1] CRAN (R 4.5.2)
later 1.4.8 2026-03-05 [1] CRAN (R 4.5.2)
lattice 0.22-9 2026-02-09 [2] CRAN (R 4.5.2)
lifecycle 1.0.5 2026-01-08 [1] CRAN (R 4.5.2)
logger 0.4.2 2026-05-10 [1] CRAN (R 4.5.2)
magrittr * 2.0.5 2026-04-04 [1] CRAN (R 4.5.2)
Matrix 1.7-5 2026-03-21 [1] CRAN (R 4.5.2)
memoise 2.0.1 2021-11-26 [1] CRAN (R 4.5.2)
mime 0.13 2025-03-17 [1] CRAN (R 4.5.2)
mmrm 0.3.17 2026-01-08 [1] CRAN (R 4.5.2)
mvtnorm 1.4-1 2026-06-06 [1] RSPM
nestcolor * 0.1.3 2025-01-21 [1] CRAN (R 4.5.2)
nlme 3.1-169 2026-03-27 [2] CRAN (R 4.5.2)
otel 0.2.0 2025-08-29 [1] CRAN (R 4.5.2)
parallelly 1.47.0 2026-04-17 [1] CRAN (R 4.5.2)
pillar 1.11.1 2025-09-17 [1] CRAN (R 4.5.2)
pkgcache 2.2.5 2026-04-09 [1] CRAN (R 4.5.2)
pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.5.2)
processx 3.9.0 2026-04-22 [1] CRAN (R 4.5.2)
promises 1.5.0 2025-11-01 [1] CRAN (R 4.5.2)
ps 1.9.3 2026-04-20 [1] CRAN (R 4.5.2)
purrr 1.2.2 2026-04-10 [1] CRAN (R 4.5.2)
R6 2.6.1 2025-02-15 [1] CRAN (R 4.5.2)
ragg 1.5.2 2026-03-23 [1] CRAN (R 4.5.2)
random.cdisc.data 0.3.16 2024-10-10 [1] CRAN (R 4.5.2)
rbibutils 2.4.1 2026-01-21 [1] CRAN (R 4.5.2)
RColorBrewer 1.1-3 2022-04-03 [1] CRAN (R 4.5.2)
Rcpp 1.1.1-1.1 2026-04-24 [1] CRAN (R 4.5.2)
Rdpack 2.6.6 2026-02-08 [1] CRAN (R 4.5.2)
rlang 1.2.0 2026-04-06 [1] CRAN (R 4.5.2)
rmarkdown 2.31 2026-03-26 [1] CRAN (R 4.5.2)
rtables * 0.6.16 2026-04-22 [1] CRAN (R 4.5.2)
S7 0.2.2 2026-04-22 [1] CRAN (R 4.5.2)
sass 0.4.10 2025-04-11 [1] CRAN (R 4.5.2)
scales 1.4.0 2025-04-24 [1] CRAN (R 4.5.2)
sessioninfo 1.2.4 2026-06-04 [1] CRAN (R 4.5.2)
shiny * 1.13.0 2026-02-20 [1] CRAN (R 4.5.2)
shinycssloaders 1.1.0 2024-07-30 [1] CRAN (R 4.5.2)
shinyjs 2.1.1 2026-01-15 [1] CRAN (R 4.5.2)
shinyvalidate 0.1.3 2023-10-04 [1] CRAN (R 4.5.2)
shinyWidgets 0.9.1 2026-03-09 [1] CRAN (R 4.5.2)
stringi 1.8.7 2025-03-27 [1] CRAN (R 4.5.2)
stringr 1.6.0 2025-11-04 [1] CRAN (R 4.5.2)
survival 3.8-6 2026-01-16 [2] CRAN (R 4.5.2)
systemfonts 1.3.2 2026-03-05 [1] CRAN (R 4.5.2)
teal * 1.1.0 2025-11-17 [1] CRAN (R 4.5.2)
teal.code * 0.7.1 2026-01-20 [1] CRAN (R 4.5.2)
teal.data * 0.8.0 2025-08-19 [1] CRAN (R 4.5.2)
teal.logger 0.4.1 2025-12-02 [1] CRAN (R 4.5.2)
teal.modules.clinical * 0.12.0 2025-12-04 [1] CRAN (R 4.5.2)
teal.reporter 0.6.1 2026-02-20 [1] CRAN (R 4.5.2)
teal.slice * 0.8.0 2026-06-04 [1] CRAN (R 4.5.2)
teal.transform * 0.7.1 2025-12-03 [1] CRAN (R 4.5.2)
teal.widgets 0.6.0 2026-02-24 [1] CRAN (R 4.5.2)
tern * 0.9.10 2025-12-18 [1] CRAN (R 4.5.2)
tern.mmrm * 0.3.3 2025-07-04 [1] CRAN (R 4.5.2)
testthat 3.3.2 2026-01-11 [1] CRAN (R 4.5.2)
textshaping 1.0.5 2026-03-06 [1] CRAN (R 4.5.2)
tibble 3.3.1 2026-01-11 [1] CRAN (R 4.5.2)
tidyr 1.3.2 2025-12-19 [1] CRAN (R 4.5.2)
tidyselect 1.2.1 2024-03-11 [1] CRAN (R 4.5.2)
TMB 1.9.21 2026-03-23 [1] CRAN (R 4.5.2)
vctrs 0.7.3 2026-04-11 [1] CRAN (R 4.5.2)
webshot 0.5.5 2023-06-26 [1] CRAN (R 4.5.2)
webshot2 0.1.2 2025-04-23 [1] CRAN (R 4.5.2)
websocket 1.4.4 2025-04-10 [1] CRAN (R 4.5.2)
withr 3.0.2 2024-10-28 [1] CRAN (R 4.5.2)
xfun 0.58 2026-06-01 [1] CRAN (R 4.5.2)
xtable 1.8-8 2026-02-22 [1] CRAN (R 4.5.2)
yaml 2.3.12 2025-12-10 [1] CRAN (R 4.5.2)
[1] /usr/local/lib/R/site-library
[2] /usr/local/lib/R/library
[3] /github/home/R/x86_64-pc-linux-gnu-library/4.5
* ── Packages attached to the search path.
──────────────────────────────────────────────────────────────────────────────
.lock file
Download the .lock file and use renv::restore() on it to recreate environment used to generate this website.
