Inspect HLM-Style Feature Parity and Validation Benchmarks
mlm_hlm8_parity.RdSummarizes mlmr's progress toward an HLM-style graphical workflow and provides lightweight benchmark model specifications for validation.
Usage
mlm_hlm8_parity()
mlm_validation_benchmarks(run = FALSE, seed = 20260423, tolerance = 0.5)
mlm_validation_report(seed = 20260423, tolerance = 0.5)Details
mlm_hlm8_parity() returns a table mapping common HLM 8 workflows to the
current mlmr support level, evidence, and next development step.
mlm_validation_benchmarks() builds deterministic model specifications
for core teaching and validation workflows: null, random-intercept,
random-slope, cross-level interaction, and three-level models. With
run = TRUE, the helper fits each model with mlm_fit() and
compares the resulting AIC with stored deterministic reference values.
mlm_validation_report() fits the benchmark suite and returns a named
list containing the validation summary, fixed effects, variance components,
ICCs, and diagnostics. This is intended as reviewer-facing evidence for CRAN,
software-paper, and classroom validation workflows.
Value
mlm_hlm8_parity() and mlm_validation_benchmarks() return data
frames. mlm_validation_report() returns a named list of data frames and
metadata.
Examples
mlm_hlm8_parity()
#> HLM8_workflow mlmr_status
#> 1 Unconditional/null model Supported
#> 2 Random-intercept model Supported
#> 3 Random-slope model Supported
#> 4 Cross-level interaction Supported
#> 5 Two-level nested model Supported
#> 6 Three-level nested model Supported
#> 7 Centering decisions Supported
#> 8 Binary outcome HGLM Experimental
#> 9 Count outcome HGLM Experimental
#> 10 Model comparison Supported
#> 11 Variance components and ICCs Supported for Gaussian LMMs
#> 12 Equation display Supported
#> 13 Diagnostics Supported
#> 14 Publication tables Supported
#> 15 Reproducible syntax export Supported
#> 16 Software citation and methods text Supported
#> 17 Missing-data review Supported
#> 18 Multiple-imputation pooling Planned
#> 19 Reliability summaries Planned
#> 20 Fully weighted multiple membership Out of current scope
#> Evidence
#> 1 Model template and formula generation support intercept-only models.
#> 2 Model template and lme4 random-intercept syntax are available.
#> 3 Random slopes can be selected for numeric fixed predictors.
#> 4 Fixed interactions are supported, including lower-by-higher level terms.
#> 5 Grouping factors and random-effect blocks support standard two-level models.
#> 6 Additional grouping factors support three-level nested models.
#> 7 No centering, grand-mean centering, and cluster-mean centering are available.
#> 8 Advanced mode fits binomial mixed models through lme4::glmer().
#> 9 Advanced mode fits Poisson and negative-binomial mixed models.
#> 10 Stored model history reports AIC, BIC, log likelihood, and LRT output.
#> 11 Variance components are generated after fitting; classical ICC tables are generated for Gaussian mixed models and suppressed with warnings for GLMMs.
#> 12 Level-by-level, combined, and Tau matrix equations are generated.
#> 13 Convergence, singular fit, gradients, overdispersion, residual plots, and fitted plots are available.
#> 14 APA fixed effects, dummy coding, variance components, Gaussian ICC, and software tables are available with inference notes.
#> 15 Downloadable R code and Quarto-ready reports are generated from fitted models.
#> 16 Publication bundle includes methods text, reproducibility checklist, and software statements.
#> 17 Missingness summaries and imputation scaffold code are available.
#> 18 Scaffold code exists, but pooled mixed-model reporting is not yet implemented.
#> 19 Reliability-style HLM summaries need explicit design and validation.
#> 20 Weighted multiple-membership models require methods outside the current lme4-backed production path.
#> Next_step
#> 1 Add benchmark comparison against a published null-model example.
#> 2 Add benchmark estimates for common classroom examples.
#> 3 Add more guardrails for over-complex random-slope structures.
#> 4 Add interaction plotting and simple-slopes export.
#> 5 Add a dedicated two-level tutorial and validation fixture.
#> 6 Add a dedicated three-level tutorial and validation fixture.
#> 7 Add teaching popovers explaining within, between, and contextual effects.
#> 8 Add stronger binary-outcome diagnostics and reporting language.
#> 9 Add count-specific diagnostics and incidence-rate-ratio table option.
#> 10 Add clearer ML/REML switching guidance in the GUI.
#> 11 Add reliability-style summaries where statistically appropriate.
#> 12 Add notation customization for manuscript labels.
#> 13 Add influence and cluster-level diagnostic summaries.
#> 14 Add journal-style table presets.
#> 15 Add one-click reproducibility bundle archive.
#> 16 Add a software-paper-ready citation and methods appendix vignette.
#> 17 Add explicit missing-data decision checklist.
#> 18 Implement and validate pooling workflow before advertising as supported.
#> 19 Define formulas and compare against HLM documentation/examples.
#> 20 Document alternatives and avoid presenting as HLM parity.
mlm_validation_benchmarks()
#> Benchmark
#> 1 null
#> 2 random_intercept
#> 3 random_slope
#> 4 cross_level
#> 5 three_level
#> Formula
#> 1 mathscore ~ 1 + (1 | schoolid)
#> 2 mathscore ~ ses_CWC + meanses_GMC + (1 | schoolid)
#> 3 mathscore ~ ses_CWC + meanses_GMC + (1 + ses_CWC | schoolid)
#> 4 mathscore ~ ses_CWC + sector + ses_CWC:sector + (1 + ses_CWC | schoolid)
#> 5 mathscore ~ ses_CWC + meanses_GMC + (1 + ses_CWC | schoolid) + (1 | districtid)
#> Expected Formula
#> 1 mathscore ~ 1 + (1 | schoolid)
#> 2 mathscore ~ ses_CWC + meanses_GMC + (1 | schoolid)
#> 3 mathscore ~ ses_CWC + meanses_GMC + (1 + ses_CWC | schoolid)
#> 4 mathscore ~ ses_CWC + sector + ses_CWC:sector + (1 + ses_CWC | schoolid)
#> 5 mathscore ~ ses_CWC + meanses_GMC + (1 + ses_CWC | schoolid) + (1 | districtid)
#> Formula Match Readiness Stops Fit Tested AIC Expected AIC AIC Difference
#> 1 TRUE 0 No NA 566.8003 NA
#> 2 TRUE 0 No NA 537.3551 NA
#> 3 TRUE 0 No NA 540.7158 NA
#> 4 TRUE 0 No NA 539.3033 NA
#> 5 TRUE 0 No NA 542.7158 NA
#> Validation Status Fixed Effects Random Blocks
#> 1 Formula validated 0 1
#> 2 Formula validated 2 1
#> 3 Formula validated 2 1
#> 4 Formula validated 2 1
#> 5 Formula validated 2 2
mlm_validation_benchmarks(run = TRUE)
#> Benchmark
#> 1 null
#> 2 random_intercept
#> 3 random_slope
#> 4 cross_level
#> 5 three_level
#> Formula
#> 1 mathscore ~ 1 + (1 | schoolid)
#> 2 mathscore ~ ses_CWC + meanses_GMC + (1 | schoolid)
#> 3 mathscore ~ ses_CWC + meanses_GMC + (1 + ses_CWC | schoolid)
#> 4 mathscore ~ ses_CWC + sector + ses_CWC:sector + (1 + ses_CWC | schoolid)
#> 5 mathscore ~ ses_CWC + meanses_GMC + (1 + ses_CWC | schoolid) + (1 | districtid)
#> Expected Formula
#> 1 mathscore ~ 1 + (1 | schoolid)
#> 2 mathscore ~ ses_CWC + meanses_GMC + (1 | schoolid)
#> 3 mathscore ~ ses_CWC + meanses_GMC + (1 + ses_CWC | schoolid)
#> 4 mathscore ~ ses_CWC + sector + ses_CWC:sector + (1 + ses_CWC | schoolid)
#> 5 mathscore ~ ses_CWC + meanses_GMC + (1 + ses_CWC | schoolid) + (1 | districtid)
#> Formula Match Readiness Stops Fit Tested AIC Expected AIC AIC Difference
#> 1 TRUE 0 Yes 566.8003 566.8003 3.151222e-06
#> 2 TRUE 0 Yes 537.3551 537.3551 5.383971e-06
#> 3 TRUE 0 Yes 540.7158 540.7158 2.472230e-05
#> 4 TRUE 0 Yes 539.3033 539.3033 2.556531e-05
#> 5 TRUE 0 Yes 542.7158 542.7158 2.472230e-05
#> Validation Status Fixed Effects Random Blocks
#> 1 Validated 0 1
#> 2 Validated 2 1
#> 3 Validated 2 1
#> 4 Validated 2 1
#> 5 Validated 2 2
names(mlm_validation_report())
#> [1] "generated_at" "seed" "tolerance"
#> [4] "benchmarks" "fixed_effects" "variance_components"
#> [7] "icc" "diagnostics"