Summarize an mfrm_fit object in a user-friendly format
Usage
# S3 method for class 'mfrm_fit'
summary(object, digits = 3, top_n = 5, ...)Arguments
- object
Output from
fit_mfrm().- digits
Number of digits for printed numeric values.
- top_n
Number of extreme facet/person rows shown in summaries.
- ...
Reserved for generic compatibility.
Value
An object of class summary.mfrm_fit with:
overview: global model/fit indicatorsstatus: concise front-door status block for quick reviewkey_warnings: highest-priority warnings to review firstnext_actions: recommended follow-up helperspopulation_overview: current population-model basis, residual variance, and omission reviewpopulation_coefficients: fitted latent-regression coefficients when a population model is activepopulation_design: latent-regression design-matrix column check when a population model is activepopulation_coding: categorical covariate levels and contrast provenance when a population model uses model-matrix codingfacet_overview: per-facet estimate distribution summaryperson_overview: person-measure distribution summarytargeting: person-versus-non-person facet targeting overview (Wright-map-style mean/SD comparison)step_overview: threshold/step diagnosticsslope_overview: discrimination summary forGPCMfitsinteraction_overview: model-estimated facet-interaction summary when the fit was specified withfacet_interactionssettings_overview: estimation-settings overview that pins the configuration that affects identification/scoringattached_diagnostics: logical flag indicating whether themfrm_fitwas returned with diagnostics already attachedattached_diagnostics_cols: character vector of diagnostic columns attached tofit$facets$personwhenattached_diagnostics = TRUErow_retention: row counts before and after preparation filterspreparation_notes: structured preparation notes retained fromfit$prepreporting_map: routing map showing which companion summaries and tables should be used for the four manuscript-oriented reporting sections (data description, diagnostics, category checks, draft reporting)person_high/person_low: highest and lowest person measuresfacet_extremes: extreme facet-level estimatescaveats: structured warning/review rows for score-support and latent-regression population-model issuesnotes: short interpretation notesdigits: numeric-print precision threaded through toprint.summary.mfrm_fit()
Details
This method provides a compact, human-readable summary oriented to reporting. It returns a structured object and prints:
model fit overview (N, LogLik, AIC/BIC, convergence)
estimation settings that affect identification/scoring interpretation
facet-level estimate distribution (mean/SD/range)
person measure distribution
step/threshold checks
a reporting map showing which companion summaries/tables should be used for manuscript-oriented data description, diagnostics, category checks, and draft reporting
high/low person measures and extreme facet levels
Interpreting output
overview: convergence and information criteria.facet_overview: per-facet spread and range of estimates.person_overview: distribution of person measures.step_overview: threshold spread and monotonicity checks.settings_overview: estimation settings that affect interpretation.population_coding: fitted categorical levels and contrasts that must be reused when scoring new persons under the population-model posterior.key_warnings/notes: short triage subset of retained zero-count score categories and latent-regression population-model caveats such as complete-case omissions, zero-variance design columns, missing coefficients, or unstable residual variance when present. Incomplete or non-finite covariates are normally handled before fitting as input errors or complete-case omissions; they appear here only if retained in a population-design check row.caveats: structured rows behind those warnings for appendix/export use;print(summary(fit))shows a compactCaveatsblock when rows are present.reporting_map: where to get companion outputs for manuscript reporting.top_person/top_facet: extreme estimates for quick triage.
Typical workflow
Fit model with
fit_mfrm().Run
summary(fit)for first-pass diagnostics.For
RSM/PCM, continue withdiagnose_mfrm()for element-level fit checks. For boundedGPCM, continue withcompute_information()/plot_information()or the fixed-calibration posterior scoring helpers.
Examples
toy <- load_mfrmr_data("example_core")
fit <- fit_mfrm(
toy, "Person", c("Rater", "Criterion"), "Score",
method = "MML", quad_points = 5
)
s <- summary(fit)
s$overview[, c("Model", "Method", "Converged")]
#> # A tibble: 1 × 3
#> Model Method Converged
#> <chr> <chr> <lgl>
#> 1 RSM MML TRUE
# Look for: Converged = TRUE. If FALSE the fit is not safe to report;
# raise `maxit`, relax `reltol`, or rerun with `quad_points = 31`.
s$person_overview
#> # A tibble: 1 × 8
#> Persons Mean SD Median Min Max Span MeanPosteriorSD
#> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 48 0.0214 1.04 0.000215 -1.56 2.52 4.08 0.257
# Look for: Mean ~ 0 (logits) and SD ~ 1 are typical when the sample
# is centred on the test difficulty. Min < -3 or Max > 3 with
# `Extreme = "min"/"max"` rows indicates ceiling / floor cases.
s$targeting
#> # A tibble: 2 × 7
#> Facet PersonMean FacetMean Targeting PersonSD FacetSD SpreadRatio
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Criterion 0.0214 0 0.0214 1.04 0.290 3.59
#> 2 Rater 0.0214 0 0.0214 1.04 0.316 3.30
# Look for: |Targeting| < ~0.5 logits across non-person facets is
# comfortable. Larger absolute values mean the test is systematically
# easier or harder than the person sample. SpreadRatio > 2 means
# persons dominate facet variability; < 0.5 means facets dominate.