Skip to contents

Build a precision audit report

Usage

precision_audit_report(fit, diagnostics = NULL)

Arguments

fit

Output from fit_mfrm().

diagnostics

Optional output from diagnose_mfrm().

Value

A named list with:

  • profile: one-row precision overview

  • checks: package-native precision audit checks

  • approximation_notes: detailed method notes

  • settings: resolved model and method labels

Details

This helper summarizes how mfrmr derived SE, CI, and reliability values for the current run. It is package-native and is intended to help users distinguish model-based precision paths from exploratory ones without requiring external software conventions.

What this audit means

precision_audit_report() is a reporting gatekeeper for precision claims. It tells you how the package derived uncertainty summaries for the current run and how cautiously those summaries should be written up.

What this audit does not justify

  • It does not, by itself, validate the measurement model or substantive conclusions.

  • A favorable precision tier does not override convergence, fit, linking, or design problems elsewhere in the analysis.

Interpreting output

  • profile: one-row overview of the active precision tier and recommended use.

  • checks: package-native audit checks for SE ordering, reliability ordering, coverage of sample/population summaries, and SE source labels.

  • approximation_notes: method notes copied from diagnose_mfrm().

Use the profile$PrecisionTier and checks table to decide whether SE, CI, and reliability language can be phrased as model-based, should be qualified as hybrid, or should remain exploratory in the final report.

Typical workflow

  1. Run diagnose_mfrm() for the fitted model.

  2. Build precision_audit_report(fit, diagnostics = diag).

  3. Use summary() to see whether the run supports model-based reporting language or should remain in exploratory/screening mode.

Examples

toy <- load_mfrmr_data("example_core")
fit <- fit_mfrm(toy, "Person", c("Rater", "Criterion"), "Score", method = "JML", maxit = 25)
diag <- diagnose_mfrm(fit, residual_pca = "none")
out <- precision_audit_report(fit, diagnostics = diag)
summary(out)
#> mfrmr Precision Audit Summary 
#>   Class: mfrm_precision_audit
#>   Components (4): profile, checks, approximation_notes, settings
#> 
#> Precision overview
#>  Method PrecisionTier SupportsFormalInference Checks ReviewOrWarn NoteRows
#>     JML   exploratory                   FALSE      7            1        4
#> 
#> Audit checks: checks
#>                     Check Status
#>            Precision tier review
#>     Optimizer convergence   pass
#>      ModelSE availability   pass
#>  Fit-adjusted SE ordering   pass
#>      Reliability ordering   pass
#>  Facet precision coverage   pass
#>          SE source labels   pass
#>                                                                                                            Detail
#>  This run uses the package's exploratory precision path; prefer MML for formal SE, CI, and reliability reporting.
#>                                                                               The optimizer reported convergence.
#>                                                          Finite ModelSE values were available for 100.0% of rows.
#>                                         Fit-adjusted SE values were not smaller than their paired ModelSE values.
#>                                      Conservative reliability values were not larger than the model-based values.
#>                              Each facet had sample/population summaries for both model and fit-adjusted SE modes.
#>                                                JML SE labels consistently identify observation-table information.
#> 
#> Settings
#>         Setting       Value
#>           model         RSM
#>          method        JMLE
#>  precision_tier exploratory
#> 
#> Notes
#>  - Exploratory precision path detected; use this run for screening and calibration triage, not as the package's primary inferential summary.