| mfrmr_visual_diagnostics | R Documentation |
Quick guide to choosing the right base-R diagnostic plot in mfrmr.
Use this page when you know the analysis question but do not yet know
which plotting helper or plot() method to call.
"Do persons and facet levels overlap on the same logit scale?"
Use plot(fit, type = "wright") or plot_wright_unified().
"Where do score categories transition across theta?"
Use plot(fit, type = "pathway") and plot(fit, type = "ccc").
"Is the design linked well enough across subsets or administrations?"
Use plot(subset_connectivity_report(...), type = "design_matrix") and
plot_anchor_drift().
"Which responses or levels look locally problematic?"
Use plot_unexpected() and plot_displacement().
"Do raters agree and do facets separate meaningfully?"
Use plot_interrater_agreement() and plot_facets_chisq().
"Is there notable residual structure after the main Rasch dimension?"
Use plot_residual_pca().
"Which interaction cells or facet levels drive bias screening results?"
Use plot_bias_interaction().
"I need one compact triage screen first."
Use plot_qc_dashboard().
Start with plot_qc_dashboard() for one-page triage.
Move to plot_unexpected(), plot_displacement(), and
plot_interrater_agreement() for flagged local issues.
Use plot(fit, type = "wright"), plot(fit, type = "pathway"),
and plot_residual_pca() for structural interpretation.
Use plot(..., draw = FALSE) when you want reusable plotting payloads
instead of immediate graphics.
Use preset = "publication" when you want the package's cleaner
manuscript-oriented styling.
plot(fit, type = "wright")Shared logit map of persons, facet levels, and step thresholds. Best for targeting and spread.
plot(fit, type = "pathway")Expected score by theta, with dominant-category strips. Best for scale progression.
plot(fit, type = "ccc")Category probability curves. Best for checking whether categories peak in sequence.
plot_unexpected()Observation-level surprises. Best for case review and local misfit triage.
plot_displacement()Level-wise anchor movement. Best for anchor robustness and residual calibration tension.
plot_interrater_agreement()Exact agreement, expected agreement, pairwise correlation, and agreement gaps. Best for rater consistency.
plot_facets_chisq()Facet variability and chi-square summaries. Best for checking whether a facet contributes meaningful spread.
plot_residual_pca()Residual structure after the Rasch dimension is removed. Best for exploratory residual-structure review, not as a standalone unidimensionality test.
plot_bias_interaction()Interaction-bias screening views for cells and facet profiles. Best for systematic departure from the additive main-effects model.
plot_anchor_drift()Anchor drift and screened linking-chain visuals. Best for multi-form or multi-wave linking review after checking retained common-element support.
Wright map: look for gaps between person density and facet/step locations; large gaps indicate weaker targeting.
Pathway / CCC: look for monotone progression and clear category dominance bands; flat or overlapping curves suggest weak category separation.
Unexpected / displacement: use as screening tools, not final evidence by themselves.
Inter-rater agreement and facet variability address different questions: agreement concerns scoring consistency, whereas variability concerns whether facet elements are statistically distinguishable.
Residual PCA and bias plots should be interpreted as follow-up layers after the main fit screen, not as first-pass diagnostics.
Quick screening:
fit_mfrm() -> diagnose_mfrm() -> plot_qc_dashboard().
Scale and targeting review:
plot(fit, type = "wright") -> plot(fit, type = "pathway") ->
plot(fit, type = "ccc").
Linking review:
subset_connectivity_report() -> plot(..., type = "design_matrix") ->
plot_anchor_drift().
Interaction review:
estimate_bias() -> plot_bias_interaction() ->
reporting_checklist().
For a longer, plot-first walkthrough, run
vignette("mfrmr-visual-diagnostics", package = "mfrmr").
mfrmr_workflow_methods, mfrmr_reports_and_tables,
mfrmr_reporting_and_apa, mfrmr_linking_and_dff,
plot.mfrm_fit(), plot_qc_dashboard(),
plot_unexpected(), plot_displacement(), plot_interrater_agreement(),
plot_facets_chisq(), plot_residual_pca(), plot_bias_interaction(),
plot_anchor_drift()
toy <- load_mfrmr_data("example_core")
fit <- fit_mfrm(
toy,
person = "Person",
facets = c("Rater", "Criterion"),
score = "Score",
method = "JML",
maxit = 25
)
diag <- diagnose_mfrm(fit, residual_pca = "none")
qc <- plot_qc_dashboard(fit, diagnostics = diag, draw = FALSE, preset = "publication")
names(qc$data)
wright <- plot(fit, type = "wright", draw = FALSE, preset = "publication")
wright$data$preset
pca <- analyze_residual_pca(diag, mode = "overall")
scree <- plot_residual_pca(pca, plot_type = "scree", draw = FALSE, preset = "publication")
scree$data$preset
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.