Skip to contents

Summarizes 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)

Arguments

run

Logical; if TRUE, fit each benchmark model and report AIC values. The default FALSE only reports formulas and readiness checks.

seed

Numeric seed used to generate the deterministic example data.

tolerance

Maximum acceptable absolute AIC difference when run = TRUE.

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"