Summarize an mfrm_fit object in a user-friendly format
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. The workflow arguments that follow
...must be supplied by name.- profile
Summary profile.
"fit"preserves the lightweight fit-only contract and does not compute diagnostics."facets"adds a FACETS-organized measurement review, while"reporting"adds the reporting-oriented results profile.- detail
Printed detail. When
NULL(the default), the lightweight"fit"profile retains the legacy"full"print while expanded profiles use"brief". Neither mode prints person identifiers unlessinclude_person = TRUE;"brief"also reduces the number of fit-level sections shown in the console.- diagnostics
Optional matching output from
diagnose_mfrm(). It is reused by the"facets"and"reporting"profiles without recomputation.- compute
Diagnostic computation policy for the expanded profiles.
"auto"computes diagnostics once when they were not supplied;"never"returns the available fit-only portions and marks every requested dependent section as"not_computed". The"fit"profile never computes diagnostics.- include_person
Logical. Whether person identifiers may be printed in extreme-person tables and requested by the fit-pathway route. The default is
FALSEfor privacy-safe console output.
Value
An object of class summary.mfrm_fit with:
overview: global model/fit indicatorsstatus: concise front-door status block for quick reviewreadiness: domain-specific numerical, data, design, stability, diagnostic, and reporting statesdata_review: structured connectivity and facet-support evidence used by the non-numerical readiness gateskey_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 diagnostics by PCM/GPCMStepFacetladder, or for the common RSM ladderslope_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()section_status: availability and explicit non-computation boundariesrequired_visual: ordered Wright-map and Infit-pathway routesprovenance: profile, diagnostic source, computation policy, and the FACETS-organization interpretation boundaryanalysis: compact fit/results indexes used for first-screen reviewresults: the reusedmfrm_resultsbackend for expanded profiles, orNULLfor the lightweight"fit"profile
Details
This method provides a compact, human-readable summary oriented to reporting. The expanded profiles use FACETS-style organization for navigation, but do not claim that FACETS was executed or that estimates are numerically equivalent to FACETS output. 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
extreme facet levels and, when explicitly requested, high/low person measures
Interpreting output
overview: convergence and information criteria.readiness: separate Numerical, Data, Design, Stability, Diagnostics, and Reporting states.InferenceReadycontributes only to Numerical; a numerical pass cannot override a disconnected-design or boundary- separation hold.data_review: overall multi-facet connectivity, facet-level score support, boundary-constant levels, single-level facets, and retained preparation notes behind the readiness rows.facet_overview: per-facet spread and range of estimates.person_overview: distribution of person measures.step_overview: threshold spread and monotonicity checks, reported byStepFacetladder for PCM/GPCM fits and as one common ladder for RSM fits.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.person_high/person_low(opt-in for printing) andfacet_extremes: extreme estimates for focused review.
Typical workflow
Review data and score support with
describe_mfrm_data().Fit with
fit_mfrm()and readsummary(fit, profile = "fit").Request
summary(fit, profile = "facets")for the comprehensive FACETS-organized review.Draw the required native Wright map with
plot(fit, type = "wright", show_ci = TRUE); add the FACETS renderer or Infit pathway only when they answer a specific follow-up question.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_operational")
# Seven quadrature points keep this executable example short. For a final
# analysis, restore the default or a prespecified grid and review sensitivity.
fit <- fit_mfrm(
toy, "Person", c("Rater", "Criterion"), "Score",
method = "MML", model = "RSM", quad_points = 7, maxit = 30
)
s <- summary(fit)
s$overview[, c(
"Model", "Method", "Converged", "InferenceReady",
"ConvergenceSeverity"
)]
#> # A tibble: 1 × 5
#> Model Method Converged InferenceReady ConvergenceSeverity
#> <chr> <chr> <lgl> <lgl> <chr>
#> 1 RSM MML TRUE TRUE pass
s$readiness
#> Domain Status
#> 1 Numerical pass
#> 2 Data pass
#> 3 Design pass_linked
#> 4 Stability pass
#> 5 Diagnostics not_assessed
#> 6 Reporting ready_for_diagnostics_and_reporting_follow_up
#> Detail
#> 1 Optimizer returned convergence code 0.
#> 2 No preparation warning or review row was retained.
#> 3 The observed graph satisfies the connectivity requirement; review the remaining design and identification assumptions separately.
#> 4 No boundary-constant non-person facet level was detected.
#> 5 Diagnostics have not yet been incorporated into this fit-only status.
#> 6 Reporting status is the strictest applicable upstream workflow state.
# `InferenceReady = TRUE` clears only the numerical gate. Also require the
# Data, Design, and Stability rows to support the intended interpretation.
# If Numerical is not a pass, inspect the retained polish stages; increasing
# `maxit` alone may not resolve the review.
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.141 0.811 -0.107 -1.71 1.45 3.15 0.463
# Interpret location and spread on the fitted logit scale together with the
# score distribution and extreme-score counts.
s$targeting
#> # A tibble: 2 × 7
#> Facet PersonMean FacetMean Targeting PersonSD FacetSD SpreadRatio
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Criterion -0.141 4.62e-18 -0.141 0.811 0.298 2.72
#> 2 Rater -0.141 0 -0.141 0.811 0.379 2.14
# Targeting and spread are descriptive. Their practical importance depends
# on the assessment purpose, sample, and facet orientation.
facets_summary <- summary(fit, profile = "facets", compute = "never")
res <- facets_summary$results
native_map <- plot(
fit, type = "wright", renderer = "native", show_ci = TRUE, draw = FALSE
)
facets_map <- plot(
fit, type = "wright", renderer = "facets", show_ci = FALSE,
category_labels = c(
`1` = "Beginning", `2` = "Developing",
`3` = "Secure", `4` = "Advanced"
),
draw = FALSE
)
# For fit statistics and the optional person-inclusive pathway, rerun the
# FACETS profile with diagnostics available, then use its `results` object.
