Parametric bootstrap of the fitted mixed model (lme4::bootMer()):
the model is simulated nsim times, refitted and the gauge R&R
statistics recomputed. Percentile intervals are returned. With few
prompt or model levels the intervals are wide and asymmetric, which is
the honest answer; msa_plan() shows how study size changes this.
Arguments
- fit
An
msa_fitof type numeric or binary.- nsim
Number of bootstrap samples.
- level
Confidence level.
- seed
Optional seed.
- ...
Passed to
lme4::bootMer(), e.g.parallel = "snow"with a caller-supplied clustercl.
Value
A data.frame with the point estimate and interval for each
statistic, plus the bootstrap replicates as attribute boot, the
confidence level, and counts n_failed (replicates with at least one
non-finite statistic) and n_singular (singular replicates with all
statistics finite).
An explicitly supplied seed is retained as the seed attribute for
reporting; with seed = NULL no seed provenance is claimed.
Details
Available for numeric and binary outcomes (lme4 models). For ordinal
outcomes fitted with ordinal::clmm a parametric bootstrap is not yet
implemented; as a pragmatic alternative, score the categories numerically
and fit type = "numeric", or treat the top category as a binary
outcome.
Numeric default fits use ordinary lme4 REML refits with nloptwrap and
its usual control settings; the analytical completion of the original
fit is not repeated for each bootstrap sample. An explicit fitting
control passed to msa_fit() remains the model's refit control.
Singular refits with finite statistics are retained in the percentile intervals. Only non-finite values are removed, separately for each statistic. A replicate with any non-finite statistic counts as failed; it is not also counted as singular. The original fit is not a replicate. Both counts are reported by the print method, including when zero.
The boot_coverage simulation study investigates interval coverage and
width by scenario; see its table in vignette("validation", package = "llmsa")
(vignettes/validation.Rmd). The full runs report overcoverage of the
integer-valued ndc intervals in S-boot-1, S-boot-2, S-boot-3, S-boot-4,
S-boot-5, S-boot-6 and S-boot-7 beyond the anchored MCSE report threshold.
No other interval estimand exceeds that report threshold in these runs.
These are reported findings, not a reason to change the intervals.
The vignette tabulates every scenario's coverage, width, bias, empirical
standard error and MCSE, with bootstrap diagnostics shown separately.
Examples
# \donttest{
fit <- msa_fit(ic50_demo, type = "numeric")
msa_boot(fit, nsim = 50, seed = 1)
#> Parametric bootstrap, 50 replicates, 95 % percentile intervals
#> statistic estimate lower upper
#> grr_pct_study_var 20.51 13.82 32.02
#> grr_pct_contribution 4.21 1.91 10.25
#> repeatability_pct_study_var 11.78 10.17 15.78
#> reproducibility_pct_study_var 16.79 8.89 28.95
#> ndc 6.00 4.00 10.00
#> icc_items 0.96 0.90 0.98
#> 0 failed or non-finite replicates (non-finite values dropped)
#> 30 singular replicates retained in the intervals
# }