
Migrating from FACETS to mfrmr
Source:vignettes/mfrmr-facets-migration.Rmd
mfrmr-facets-migration.RmdThis vignette walks FACETS users through the closest
mfrmr workflow: preparing data, fitting an
RSM/PCM many-facet Rasch-family model with
FACETS-oriented settings, generating related diagnostic and reporting
tables, and reviewing the output-contract boundary between the two
systems. GPCM can be fit in mfrmr, but its
slope-aware score semantics are intentionally outside the score-side
FACETS output-contract route.
The software reference target for this migration boundary is FACETS 64-bit 4.5.1 (July 2026). A cited manual may retain its published 4.5.0 edition; software version and documentation edition are recorded separately. The coverage described here is not an external numerical-parity result.
Mental model
The two stacks share the same psychometric framework but differ in operating model.
Before treating a legacy workflow as covered, inspect the public coverage boundary:
facets_feature_coverage()
facets_feature_coverage("not_implemented")This matrix describes the availability of package-native output
surfaces. implemented does not by itself mean that the two
programs use the same estimand, conditioning, extreme-score rule,
degrees of freedom, or numerical contract.
| Concept | FACETS (Linacre 2026) | mfrmr |
|---|---|---|
| Input | Specification file plus data file |
data.frame in long format |
| Estimation | JMLE by default |
MML by default; JML is the closest
estimation route for a JMLE-oriented comparison |
| Fit-statistic basis | Residuals at JMLE estimates | Residuals at EAP person measures under MML (shrunken
toward the mean); refit with method = "JML" for a
JMLE-style residual basis |
| Models | Multiple model statements, rating scales, partial credit, and other response families can coexist | One response-model family per fit: RSM,
PCM, or GPCM
|
| Output | Tables 0-30 plus graphic files | Returned R objects with summary() and
plot() methods |
| Anchoring | Element/group anchors, rating-scale calibration, and reusable starting values | Element and group anchors; no general threshold/scale anchors or fixed-calibration starting-value bundle |
| Repeated cells | Multiple observations may be represented within a design cell | Exact Person-by-facet duplicates are retained but force Data review; distinguish legitimate repeats with an event/occasion facet |
| Bias / interaction | Table 14 |
estimate_bias() and
bias_interaction_report()
|
| Wright map / variable map | Graphic variable-map output |
plot(fit, type = "wright") and
plot_wright_unified()
|
| Fair average | Table 7 fair-M average | fair_average_table() |
| Reproducibility | Specification, input data, FACETS version, and recorded run environment/settings |
build_mfrm_manifest() plus
build_mfrm_replay_script()
|
A one-shot legacy-compatible call
If the goal is to translate a FACETS-style script with minimal R-side
plumbing, use run_mfrm_facets() (alias
mfrmRFacets()):
library(mfrmr)
data("mfrmr_example_operational", package = "mfrmr")
run <- run_mfrm_facets(
data = mfrmr_example_operational,
person = "Person",
facets = c("Rater", "Criterion"),
score = "Score",
model = "RSM",
method = "JML"
)
names(run)
#> [1] "fit" "diagnostics" "iteration" "fair_average" "rating_scale"
#> [6] "run_info" "mapping"The wrapper returns the same fit_mfrm() and
diagnose_mfrm() objects that a step-by-step pipeline
produces, plus the iteration log, fair-average table, and rating-scale
table:
jml_status <- summary(run$fit, profile = "fit", detail = "brief")
jml_status$overview[, c(
"Model", "Method", "Converged", "InferenceReady",
"ConvergenceSeverity"
)]
#> # A tibble: 1 × 5
#> Model Method Converged InferenceReady ConvergenceSeverity
#> <chr> <chr> <lgl> <lgl> <chr>
#> 1 RSM JML TRUE TRUE pass
jml_status$readiness
#> Domain Status
#> 1 Fit ready
#> 2 Numerical pass
#> 3 Data pass
#> 4 Design pass_linked
#> 5 Stability pass
#> 6 Diagnostics not_assessed
#> 7 Reporting exploratory_fit_ready_for_diagnostics
#> Detail
#> 1 All stored fit-readiness components passed.
#> 2 Optimizer returned convergence code 0.
#> 3 No preparation warning or review row was retained.
#> 4 The observed graph satisfies the connectivity requirement; review the remaining design and identification assumptions separately.
#> 5 No boundary-constant non-person facet level was detected.
#> 6 Diagnostics have not yet been incorporated into this fit-only status.
#> 7 Reporting status is the strictest applicable upstream workflow state.
head(run$fair_average)
#> $raw_by_facet
#> $raw_by_facet$Person
#> # A tibble: 48 × 22
#> TotalScore TotalCount WeightdScore WeightdCount ObservedAverage FairM FairZ
#> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 22 6 22 6 3.67 3.69 3.69
#> 2 22 6 22 6 3.67 3.66 3.66
#> 3 20 6 20 6 3.33 3.44 3.44
#> 4 20 6 20 6 3.33 3.41 3.41
#> 5 19 6 19 6 3.17 3.34 3.34
#> 6 19 6 19 6 3.17 3.19 3.19
#> 7 18 6 18 6 3 3.19 3.19
#> 8 17 5 17 5 3.4 3.11 3.11
#> 9 20 6 20 6 3.33 3.07 3.07
#> 10 18 6 18 6 3 3.02 3.02
#> # ℹ 38 more rows
#> # ℹ 15 more variables: FairMReference <chr>, Measure <dbl>,
#> # PrimaryMeasure <dbl>, MeasureBasis <chr>, ExtremeAdjustment <dbl>,
#> # ModelSE <dbl>, RealSE <dbl>, InfitMnSq <dbl>, InfitZStd <dbl>,
#> # OutfitMnSq <dbl>, OutfitZStd <dbl>, PtMeaCorr <dbl>, Anchor <chr>,
#> # Status <chr>, Level <chr>
#>
#> $raw_by_facet$Rater
#> # A tibble: 6 × 22
#> TotalScore TotalCount WeightdScore WeightdCount ObservedAverage FairM FairZ
#> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 115 50 115 50 2.3 2.09 2.23
#> 2 77 38 77 38 2.03 2.10 2.24
#> 3 108 47 108 47 2.30 2.17 2.31
#> 4 95 44 95 44 2.16 2.29 2.44
#> 5 147 56 147 56 2.62 2.54 2.70
#> 6 130 47 130 47 2.77 2.73 2.88
#> # ℹ 15 more variables: FairMReference <chr>, Measure <dbl>,
#> # PrimaryMeasure <dbl>, MeasureBasis <chr>, ExtremeAdjustment <dbl>,
#> # ModelSE <dbl>, RealSE <dbl>, InfitMnSq <dbl>, InfitZStd <dbl>,
#> # OutfitMnSq <dbl>, OutfitZStd <dbl>, PtMeaCorr <dbl>, Anchor <chr>,
#> # Status <chr>, Level <chr>
#>
#> $raw_by_facet$Criterion
#> # A tibble: 3 × 22
#> TotalScore TotalCount WeightdScore WeightdCount ObservedAverage FairM FairZ
#> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 211 94 211 94 2.24 2.16 2.30
#> 2 218 94 218 94 2.32 2.23 2.37
#> 3 243 94 243 94 2.59 2.57 2.73
#> # ℹ 15 more variables: FairMReference <chr>, Measure <dbl>,
#> # PrimaryMeasure <dbl>, MeasureBasis <chr>, ExtremeAdjustment <dbl>,
#> # ModelSE <dbl>, RealSE <dbl>, InfitMnSq <dbl>, InfitZStd <dbl>,
#> # OutfitMnSq <dbl>, OutfitZStd <dbl>, PtMeaCorr <dbl>, Anchor <chr>,
#> # Status <chr>, Level <chr>
#>
#>
#> $by_facet
#> $by_facet$Person
#> Total Score Total Count Weightd Score Weightd Count Obsvd Average
#> 1 22 6 22 6 3.67
#> 2 22 6 22 6 3.67
#> 3 20 6 20 6 3.33
#> 4 20 6 20 6 3.33
#> 5 19 6 19 6 3.17
#> 6 19 6 19 6 3.17
#> 7 18 6 18 6 3.00
#> 8 17 5 17 5 3.40
#> 9 20 6 20 6 3.33
#> 10 18 6 18 6 3.00
#> 11 17 6 17 6 2.83
#> 12 16 6 16 6 2.67
#> 13 15 5 15 5 3.00
#> 14 16 6 16 6 2.67
#> 15 16 6 16 6 2.67
#> 16 18 6 18 6 3.00
#> 17 12 5 12 5 2.40
#> 18 15 6 15 6 2.50
#> 19 16 6 16 6 2.67
#> 20 14 6 14 6 2.33
#> 21 17 6 17 6 2.83
#> 22 13 6 13 6 2.17
#> 23 13 6 13 6 2.17
#> 24 16 6 16 6 2.67
#> 25 16 6 16 6 2.67
#> 26 12 5 12 5 2.40
#> 27 11 5 11 5 2.20
#> 28 15 6 15 6 2.50
#> 29 13 6 13 6 2.17
#> 30 13 6 13 6 2.17
#> 31 12 6 12 6 2.00
#> 32 10 5 10 5 2.00
#> 33 13 6 13 6 2.17
#> 34 13 6 13 6 2.17
#> 35 14 6 14 6 2.33
#> 36 12 6 12 6 2.00
#> 37 12 6 12 6 2.00
#> 38 12 6 12 6 2.00
#> 39 9 6 9 6 1.50
#> 40 10 6 10 6 1.67
#> 41 9 6 9 6 1.50
#> 42 9 6 9 6 1.50
#> 43 9 6 9 6 1.50
#> 44 8 6 8 6 1.33
#> 45 8 6 8 6 1.33
#> 46 8 6 8 6 1.33
#> 47 8 6 8 6 1.33
#> 48 7 6 7 6 1.17
#> Fair(M) Average Fair(Z) Average FairMReference Measure
#> 1 3.69 3.69 Mean of other facet measures 2.37
#> 2 3.66 3.66 Mean of other facet measures 2.26
#> 3 3.44 3.44 Mean of other facet measures 1.65
#> 4 3.41 3.41 Mean of other facet measures 1.59
#> 5 3.34 3.34 Mean of other facet measures 1.44
#> 6 3.19 3.19 Mean of other facet measures 1.16
#> 7 3.19 3.19 Mean of other facet measures 1.15
#> 8 3.11 3.11 Mean of other facet measures 1.01
#> 9 3.07 3.07 Mean of other facet measures 0.95
#> 10 3.02 3.02 Mean of other facet measures 0.87
#> 11 2.92 2.92 Mean of other facet measures 0.71
#> 12 2.86 2.86 Mean of other facet measures 0.62
#> 13 2.76 2.76 Mean of other facet measures 0.45
#> 14 2.75 2.75 Mean of other facet measures 0.45
#> 15 2.75 2.75 Mean of other facet measures 0.45
#> 16 2.69 2.69 Mean of other facet measures 0.35
#> 17 2.66 2.66 Mean of other facet measures 0.30
#> 18 2.62 2.62 Mean of other facet measures 0.25
#> 19 2.58 2.58 Mean of other facet measures 0.17
#> 20 2.52 2.52 Mean of other facet measures 0.09
#> 21 2.51 2.51 Mean of other facet measures 0.08
#> 22 2.35 2.35 Mean of other facet measures -0.18
#> 23 2.35 2.35 Mean of other facet measures -0.18
#> 24 2.35 2.35 Mean of other facet measures -0.19
#> 25 2.35 2.35 Mean of other facet measures -0.19
#> 26 2.33 2.33 Mean of other facet measures -0.21
#> 27 2.26 2.26 Mean of other facet measures -0.33
#> 28 2.18 2.18 Mean of other facet measures -0.45
#> 29 2.16 2.16 Mean of other facet measures -0.49
#> 30 2.16 2.16 Mean of other facet measures -0.49
#> 31 2.10 2.10 Mean of other facet measures -0.59
#> 32 2.07 2.07 Mean of other facet measures -0.65
#> 33 2.06 2.06 Mean of other facet measures -0.65
#> 34 2.06 2.06 Mean of other facet measures -0.65
#> 35 2.03 2.03 Mean of other facet measures -0.71
#> 36 1.99 1.99 Mean of other facet measures -0.79
#> 37 1.90 1.90 Mean of other facet measures -0.95
#> 38 1.74 1.74 Mean of other facet measures -1.28
#> 39 1.61 1.61 Mean of other facet measures -1.56
#> 40 1.58 1.58 Mean of other facet measures -1.64
#> 41 1.56 1.56 Mean of other facet measures -1.68
#> 42 1.48 1.48 Mean of other facet measures -1.89
#> 43 1.48 1.48 Mean of other facet measures -1.89
#> 44 1.38 1.38 Mean of other facet measures -2.21
#> 45 1.38 1.38 Mean of other facet measures -2.21
#> 46 1.36 1.36 Mean of other facet measures -2.26
#> 47 1.36 1.36 Mean of other facet measures -2.26
#> 48 1.18 1.18 Mean of other facet measures -3.08
#> PrimaryMeasure MeasureBasis ExtremeAdjustment Model S.E. Real S.E.
#> 1 2.37 Fitted estimate 0 0.76 0.76
#> 2 2.26 Fitted estimate 0 0.77 0.94
#> 3 1.65 Fitted estimate 0 0.59 0.65
#> 4 1.59 Fitted estimate 0 0.58 0.58
#> 5 1.44 Fitted estimate 0 0.55 0.60
#> 6 1.16 Fitted estimate 0 0.55 0.71
#> 7 1.15 Fitted estimate 0 0.53 0.85
#> 8 1.01 Fitted estimate 0 0.66 0.66
#> 9 0.95 Fitted estimate 0 0.58 0.70
#> 10 0.87 Fitted estimate 0 0.53 0.53
#> 11 0.71 Fitted estimate 0 0.51 0.51
#> 12 0.62 Fitted estimate 0 0.51 0.67
#> 13 0.45 Fitted estimate 0 0.57 0.59
#> 14 0.45 Fitted estimate 0 0.51 0.51
#> 15 0.45 Fitted estimate 0 0.51 0.51
#> 16 0.35 Fitted estimate 0 0.53 0.56
#> 17 0.30 Fitted estimate 0 0.56 0.78
#> 18 0.25 Fitted estimate 0 0.51 0.52
#> 19 0.17 Fitted estimate 0 0.52 0.72
#> 20 0.09 Fitted estimate 0 0.52 0.52
#> 21 0.08 Fitted estimate 0 0.51 0.62
#> 22 -0.18 Fitted estimate 0 0.53 0.53
#> 23 -0.18 Fitted estimate 0 0.53 0.53
#> 24 -0.19 Fitted estimate 0 0.51 0.51
#> 25 -0.19 Fitted estimate 0 0.51 0.51
#> 26 -0.21 Fitted estimate 0 0.57 0.57
#> 27 -0.33 Fitted estimate 0 0.58 0.60
#> 28 -0.45 Fitted estimate 0 0.51 0.51
#> 29 -0.49 Fitted estimate 0 0.54 0.66
#> 30 -0.49 Fitted estimate 0 0.54 0.82
#> 31 -0.59 Fitted estimate 0 0.55 0.55
#> 32 -0.65 Fitted estimate 0 0.60 0.63
#> 33 -0.65 Fitted estimate 0 0.54 0.54
#> 34 -0.65 Fitted estimate 0 0.54 0.57
#> 35 -0.71 Fitted estimate 0 0.52 0.53
#> 36 -0.79 Fitted estimate 0 0.55 0.55
#> 37 -0.95 Fitted estimate 0 0.56 0.56
#> 38 -1.28 Fitted estimate 0 0.55 0.55
#> 39 -1.56 Fitted estimate 0 0.68 0.68
#> 40 -1.64 Fitted estimate 0 0.62 0.62
#> 41 -1.68 Fitted estimate 0 0.68 0.68
#> 42 -1.89 Fitted estimate 0 0.68 0.71
#> 43 -1.89 Fitted estimate 0 0.68 1.28
#> 44 -2.21 Fitted estimate 0 0.79 0.79
#> 45 -2.21 Fitted estimate 0 0.79 0.79
#> 46 -2.26 Fitted estimate 0 0.79 0.79
#> 47 -2.26 Fitted estimate 0 0.79 0.79
#> 48 -3.08 Fitted estimate 0 1.06 1.08
#> Infit MnSq Infit ZStd Outfit MnSq Outfit ZStd PtMea Corr Anch Status Element
#> 1 0.44 -0.30 0.39 -1.22 NA P015
#> 2 1.51 0.77 1.04 0.27 NA P045
#> 3 1.23 0.53 1.31 0.68 NA P036
#> 4 1.00 0.27 0.99 0.18 NA P030
#> 5 1.22 0.52 1.31 0.68 NA P027
#> 6 1.66 0.97 1.91 1.44 NA P013
#> 7 2.62 1.77 2.59 2.13 NA P025
#> 8 0.56 -0.25 0.60 -0.54 NA P006
#> 9 1.44 0.74 1.53 0.99 NA P002
#> 10 0.89 0.11 0.85 -0.08 NA P019
#> 11 0.72 -0.19 0.69 -0.40 NA P034
#> 12 1.72 1.07 1.75 1.26 NA P021
#> 13 1.04 0.32 1.05 0.29 NA P001
#> 14 0.69 -0.25 0.68 -0.42 NA P031
#> 15 0.34 -1.01 0.34 -1.39 NA P035
#> 16 1.13 0.41 1.09 0.35 NA P004
#> 17 1.95 1.20 1.93 1.37 NA P024
#> 18 1.01 0.26 1.01 0.20 NA P038
#> 19 1.93 1.24 1.95 1.49 NA P048
#> 20 0.14 -1.72 0.14 -2.32 NA P022
#> 21 1.44 0.77 1.44 0.86 NA P003
#> 22 0.13 -1.74 0.12 -2.46 NA P026
#> 23 0.65 -0.29 0.67 -0.46 NA P020
#> 24 0.61 -0.39 0.62 -0.57 NA P005
#> 25 0.61 -0.39 0.62 -0.57 NA P010
#> 26 0.59 -0.34 0.62 -0.49 NA P011
#> 27 1.08 0.37 1.13 0.40 NA P028
#> 28 0.29 -1.17 0.29 -1.58 NA P008
#> 29 1.54 0.86 1.49 0.93 NA P018
#> 30 2.35 1.56 2.57 2.11 NA P012
#> 31 0.43 -0.67 0.43 -1.09 NA P042
#> 32 1.07 0.37 1.10 0.36 NA P039
#> 33 0.50 -0.56 0.53 -0.81 NA P046
#> 34 1.11 0.39 1.03 0.25 NA P043
#> 35 1.04 0.30 1.06 0.30 NA P009
#> 36 0.29 -1.03 0.31 -1.48 NA P017
#> 37 0.79 -0.03 0.79 -0.19 NA P044
#> 38 0.43 -0.68 0.42 -1.10 NA P007
#> 39 0.70 -0.03 0.72 -0.35 NA P023
#> 40 0.54 -0.34 0.58 -0.67 NA P047
#> 41 0.59 -0.19 0.64 -0.53 NA P041
#> 42 1.08 0.40 0.91 0.04 NA P014
#> 43 3.53 1.94 3.31 2.74 NA P016
#> 44 0.70 0.07 0.68 -0.42 NA P037
#> 45 0.79 0.17 0.88 -0.03 NA P040
#> 46 0.73 0.11 0.73 -0.32 NA P029
#> 47 0.57 -0.08 0.52 -0.81 NA P033
#> 48 1.03 NA 1.23 0.56 NA P032
#> ObservedAverage AdjustedAverage StandardizedAdjustedAverage ModelBasedSE
#> 1 3.67 3.69 3.69 0.76
#> 2 3.67 3.66 3.66 0.77
#> 3 3.33 3.44 3.44 0.59
#> 4 3.33 3.41 3.41 0.58
#> 5 3.17 3.34 3.34 0.55
#> 6 3.17 3.19 3.19 0.55
#> 7 3.00 3.19 3.19 0.53
#> 8 3.40 3.11 3.11 0.66
#> 9 3.33 3.07 3.07 0.58
#> 10 3.00 3.02 3.02 0.53
#> 11 2.83 2.92 2.92 0.51
#> 12 2.67 2.86 2.86 0.51
#> 13 3.00 2.76 2.76 0.57
#> 14 2.67 2.75 2.75 0.51
#> 15 2.67 2.75 2.75 0.51
#> 16 3.00 2.69 2.69 0.53
#> 17 2.40 2.66 2.66 0.56
#> 18 2.50 2.62 2.62 0.51
#> 19 2.67 2.58 2.58 0.52
#> 20 2.33 2.52 2.52 0.52
#> 21 2.83 2.51 2.51 0.51
#> 22 2.17 2.35 2.35 0.53
#> 23 2.17 2.35 2.35 0.53
#> 24 2.67 2.35 2.35 0.51
#> 25 2.67 2.35 2.35 0.51
#> 26 2.40 2.33 2.33 0.57
#> 27 2.20 2.26 2.26 0.58
#> 28 2.50 2.18 2.18 0.51
#> 29 2.17 2.16 2.16 0.54
#> 30 2.17 2.16 2.16 0.54
#> 31 2.00 2.10 2.10 0.55
#> 32 2.00 2.07 2.07 0.60
#> 33 2.17 2.06 2.06 0.54
#> 34 2.17 2.06 2.06 0.54
#> 35 2.33 2.03 2.03 0.52
#> 36 2.00 1.99 1.99 0.55
#> 37 2.00 1.90 1.90 0.56
#> 38 2.00 1.74 1.74 0.55
#> 39 1.50 1.61 1.61 0.68
#> 40 1.67 1.58 1.58 0.62
#> 41 1.50 1.56 1.56 0.68
#> 42 1.50 1.48 1.48 0.68
#> 43 1.50 1.48 1.48 0.68
#> 44 1.33 1.38 1.38 0.79
#> 45 1.33 1.38 1.38 0.79
#> 46 1.33 1.36 1.36 0.79
#> 47 1.33 1.36 1.36 0.79
#> 48 1.17 1.18 1.18 1.06
#> FitAdjustedSE
#> 1 0.76
#> 2 0.94
#> 3 0.65
#> 4 0.58
#> 5 0.60
#> 6 0.71
#> 7 0.85
#> 8 0.66
#> 9 0.70
#> 10 0.53
#> 11 0.51
#> 12 0.67
#> 13 0.59
#> 14 0.51
#> 15 0.51
#> 16 0.56
#> 17 0.78
#> 18 0.52
#> 19 0.72
#> 20 0.52
#> 21 0.62
#> 22 0.53
#> 23 0.53
#> 24 0.51
#> 25 0.51
#> 26 0.57
#> 27 0.60
#> 28 0.51
#> 29 0.66
#> 30 0.82
#> 31 0.55
#> 32 0.63
#> 33 0.54
#> 34 0.57
#> 35 0.53
#> 36 0.55
#> 37 0.56
#> 38 0.55
#> 39 0.68
#> 40 0.62
#> 41 0.68
#> 42 0.71
#> 43 1.28
#> 44 0.79
#> 45 0.79
#> 46 0.79
#> 47 0.79
#> 48 1.08
#>
#> $by_facet$Rater
#> Total Score Total Count Weightd Score Weightd Count Obsvd Average
#> 1 115 50 115 50 2.30
#> 2 77 38 77 38 2.03
#> 3 108 47 108 47 2.30
#> 4 95 44 95 44 2.16
#> 5 147 56 147 56 2.62
#> 6 130 47 130 47 2.77
#> Fair(M) Average Fair(Z) Average
#> 1 2.09 2.23
#> 2 2.10 2.24
#> 3 2.17 2.31
#> 4 2.29 2.44
#> 5 2.54 2.70
#> 6 2.73 2.88
#> FairMReference Measure PrimaryMeasure
#> 1 Mean of fitted Person and other facet measures 0.37 0.37
#> 2 Mean of fitted Person and other facet measures 0.36 0.36
#> 3 Mean of fitted Person and other facet measures 0.24 0.24
#> 4 Mean of fitted Person and other facet measures 0.03 0.03
#> 5 Mean of fitted Person and other facet measures -0.36 -0.36
#> 6 Mean of fitted Person and other facet measures -0.64 -0.64
#> MeasureBasis ExtremeAdjustment Model S.E. Real S.E. Infit MnSq Infit ZStd
#> 1 Fitted estimate 0 0.20 0.21 1.13 0.56
#> 2 Fitted estimate 0 0.24 0.24 0.99 0.08
#> 3 Fitted estimate 0 0.20 0.21 1.10 0.42
#> 4 Fitted estimate 0 0.22 0.22 0.79 -0.60
#> 5 Fitted estimate 0 0.18 0.19 1.12 0.53
#> 6 Fitted estimate 0 0.19 0.19 0.86 -0.46
#> Outfit MnSq Outfit ZStd PtMea Corr Anch Status Element ObservedAverage
#> 1 1.07 0.40 0.59 R03 2.30
#> 2 0.98 0.00 0.59 R06 2.03
#> 3 1.12 0.63 0.59 R04 2.30
#> 4 0.76 -1.14 0.59 R05 2.16
#> 5 1.24 1.22 0.59 R02 2.62
#> 6 0.83 -0.82 0.59 R01 2.77
#> AdjustedAverage StandardizedAdjustedAverage ModelBasedSE FitAdjustedSE
#> 1 2.09 2.23 0.20 0.21
#> 2 2.10 2.24 0.24 0.24
#> 3 2.17 2.31 0.20 0.21
#> 4 2.29 2.44 0.22 0.22
#> 5 2.54 2.70 0.18 0.19
#> 6 2.73 2.88 0.19 0.19
#>
#> $by_facet$Criterion
#> Total Score Total Count Weightd Score Weightd Count Obsvd Average
#> 1 211 94 211 94 2.24
#> 2 218 94 218 94 2.32
#> 3 243 94 243 94 2.59
#> Fair(M) Average Fair(Z) Average
#> 1 2.16 2.30
#> 2 2.23 2.37
#> 3 2.57 2.73
#> FairMReference Measure PrimaryMeasure
#> 1 Mean of fitted Person and other facet measures 0.26 0.26
#> 2 Mean of fitted Person and other facet measures 0.14 0.14
#> 3 Mean of fitted Person and other facet measures -0.40 -0.40
#> MeasureBasis ExtremeAdjustment Model S.E. Real S.E. Infit MnSq Infit ZStd
#> 1 Fitted estimate 0 0.14 0.16 1.20 1.00
#> 2 Fitted estimate 0 0.14 0.14 0.95 -0.17
#> 3 Fitted estimate 0 0.14 0.14 0.88 -0.57
#> Outfit MnSq Outfit ZStd PtMea Corr Anch Status Element ObservedAverage
#> 1 1.21 1.41 0.63 Organization 2.24
#> 2 0.93 -0.45 0.63 Language 2.32
#> 3 0.89 -0.71 0.63 Content 2.59
#> AdjustedAverage StandardizedAdjustedAverage ModelBasedSE FitAdjustedSE
#> 1 2.16 2.30 0.14 0.16
#> 2 2.23 2.37 0.14 0.14
#> 3 2.57 2.73 0.14 0.14
#>
#>
#> $stacked
#> Facet Total Score Total Count Weightd Score Weightd Count Obsvd Average
#> 1 Person 22 6 22 6 3.67
#> 2 Person 22 6 22 6 3.67
#> 3 Person 20 6 20 6 3.33
#> 4 Person 20 6 20 6 3.33
#> 5 Person 19 6 19 6 3.17
#> 6 Person 19 6 19 6 3.17
#> 7 Person 18 6 18 6 3.00
#> 8 Person 17 5 17 5 3.40
#> 9 Person 20 6 20 6 3.33
#> 10 Person 18 6 18 6 3.00
#> 11 Person 17 6 17 6 2.83
#> 12 Person 16 6 16 6 2.67
#> 13 Person 15 5 15 5 3.00
#> 14 Person 16 6 16 6 2.67
#> 15 Person 16 6 16 6 2.67
#> 16 Person 18 6 18 6 3.00
#> 17 Person 12 5 12 5 2.40
#> 18 Person 15 6 15 6 2.50
#> 19 Person 16 6 16 6 2.67
#> 20 Person 14 6 14 6 2.33
#> 21 Person 17 6 17 6 2.83
#> 22 Person 13 6 13 6 2.17
#> 23 Person 13 6 13 6 2.17
#> 24 Person 16 6 16 6 2.67
#> 25 Person 16 6 16 6 2.67
#> 26 Person 12 5 12 5 2.40
#> 27 Person 11 5 11 5 2.20
#> 28 Person 15 6 15 6 2.50
#> 29 Person 13 6 13 6 2.17
#> 30 Person 13 6 13 6 2.17
#> 31 Person 12 6 12 6 2.00
#> 32 Person 10 5 10 5 2.00
#> 33 Person 13 6 13 6 2.17
#> 34 Person 13 6 13 6 2.17
#> 35 Person 14 6 14 6 2.33
#> 36 Person 12 6 12 6 2.00
#> 37 Person 12 6 12 6 2.00
#> 38 Person 12 6 12 6 2.00
#> 39 Person 9 6 9 6 1.50
#> 40 Person 10 6 10 6 1.67
#> 41 Person 9 6 9 6 1.50
#> 42 Person 9 6 9 6 1.50
#> 43 Person 9 6 9 6 1.50
#> 44 Person 8 6 8 6 1.33
#> 45 Person 8 6 8 6 1.33
#> 46 Person 8 6 8 6 1.33
#> 47 Person 8 6 8 6 1.33
#> 48 Person 7 6 7 6 1.17
#> 49 Rater 115 50 115 50 2.30
#> 50 Rater 77 38 77 38 2.03
#> 51 Rater 108 47 108 47 2.30
#> 52 Rater 95 44 95 44 2.16
#> 53 Rater 147 56 147 56 2.62
#> 54 Rater 130 47 130 47 2.77
#> 55 Criterion 211 94 211 94 2.24
#> 56 Criterion 218 94 218 94 2.32
#> 57 Criterion 243 94 243 94 2.59
#> Fair(M) Average Fair(Z) Average
#> 1 3.69 3.69
#> 2 3.66 3.66
#> 3 3.44 3.44
#> 4 3.41 3.41
#> 5 3.34 3.34
#> 6 3.19 3.19
#> 7 3.19 3.19
#> 8 3.11 3.11
#> 9 3.07 3.07
#> 10 3.02 3.02
#> 11 2.92 2.92
#> 12 2.86 2.86
#> 13 2.76 2.76
#> 14 2.75 2.75
#> 15 2.75 2.75
#> 16 2.69 2.69
#> 17 2.66 2.66
#> 18 2.62 2.62
#> 19 2.58 2.58
#> 20 2.52 2.52
#> 21 2.51 2.51
#> 22 2.35 2.35
#> 23 2.35 2.35
#> 24 2.35 2.35
#> 25 2.35 2.35
#> 26 2.33 2.33
#> 27 2.26 2.26
#> 28 2.18 2.18
#> 29 2.16 2.16
#> 30 2.16 2.16
#> 31 2.10 2.10
#> 32 2.07 2.07
#> 33 2.06 2.06
#> 34 2.06 2.06
#> 35 2.03 2.03
#> 36 1.99 1.99
#> 37 1.90 1.90
#> 38 1.74 1.74
#> 39 1.61 1.61
#> 40 1.58 1.58
#> 41 1.56 1.56
#> 42 1.48 1.48
#> 43 1.48 1.48
#> 44 1.38 1.38
#> 45 1.38 1.38
#> 46 1.36 1.36
#> 47 1.36 1.36
#> 48 1.18 1.18
#> 49 2.09 2.23
#> 50 2.10 2.24
#> 51 2.17 2.31
#> 52 2.29 2.44
#> 53 2.54 2.70
#> 54 2.73 2.88
#> 55 2.16 2.30
#> 56 2.23 2.37
#> 57 2.57 2.73
#> FairMReference Measure PrimaryMeasure
#> 1 Mean of other facet measures 2.37 2.37
#> 2 Mean of other facet measures 2.26 2.26
#> 3 Mean of other facet measures 1.65 1.65
#> 4 Mean of other facet measures 1.59 1.59
#> 5 Mean of other facet measures 1.44 1.44
#> 6 Mean of other facet measures 1.16 1.16
#> 7 Mean of other facet measures 1.15 1.15
#> 8 Mean of other facet measures 1.01 1.01
#> 9 Mean of other facet measures 0.95 0.95
#> 10 Mean of other facet measures 0.87 0.87
#> 11 Mean of other facet measures 0.71 0.71
#> 12 Mean of other facet measures 0.62 0.62
#> 13 Mean of other facet measures 0.45 0.45
#> 14 Mean of other facet measures 0.45 0.45
#> 15 Mean of other facet measures 0.45 0.45
#> 16 Mean of other facet measures 0.35 0.35
#> 17 Mean of other facet measures 0.30 0.30
#> 18 Mean of other facet measures 0.25 0.25
#> 19 Mean of other facet measures 0.17 0.17
#> 20 Mean of other facet measures 0.09 0.09
#> 21 Mean of other facet measures 0.08 0.08
#> 22 Mean of other facet measures -0.18 -0.18
#> 23 Mean of other facet measures -0.18 -0.18
#> 24 Mean of other facet measures -0.19 -0.19
#> 25 Mean of other facet measures -0.19 -0.19
#> 26 Mean of other facet measures -0.21 -0.21
#> 27 Mean of other facet measures -0.33 -0.33
#> 28 Mean of other facet measures -0.45 -0.45
#> 29 Mean of other facet measures -0.49 -0.49
#> 30 Mean of other facet measures -0.49 -0.49
#> 31 Mean of other facet measures -0.59 -0.59
#> 32 Mean of other facet measures -0.65 -0.65
#> 33 Mean of other facet measures -0.65 -0.65
#> 34 Mean of other facet measures -0.65 -0.65
#> 35 Mean of other facet measures -0.71 -0.71
#> 36 Mean of other facet measures -0.79 -0.79
#> 37 Mean of other facet measures -0.95 -0.95
#> 38 Mean of other facet measures -1.28 -1.28
#> 39 Mean of other facet measures -1.56 -1.56
#> 40 Mean of other facet measures -1.64 -1.64
#> 41 Mean of other facet measures -1.68 -1.68
#> 42 Mean of other facet measures -1.89 -1.89
#> 43 Mean of other facet measures -1.89 -1.89
#> 44 Mean of other facet measures -2.21 -2.21
#> 45 Mean of other facet measures -2.21 -2.21
#> 46 Mean of other facet measures -2.26 -2.26
#> 47 Mean of other facet measures -2.26 -2.26
#> 48 Mean of other facet measures -3.08 -3.08
#> 49 Mean of fitted Person and other facet measures 0.37 0.37
#> 50 Mean of fitted Person and other facet measures 0.36 0.36
#> 51 Mean of fitted Person and other facet measures 0.24 0.24
#> 52 Mean of fitted Person and other facet measures 0.03 0.03
#> 53 Mean of fitted Person and other facet measures -0.36 -0.36
#> 54 Mean of fitted Person and other facet measures -0.64 -0.64
#> 55 Mean of fitted Person and other facet measures 0.26 0.26
#> 56 Mean of fitted Person and other facet measures 0.14 0.14
#> 57 Mean of fitted Person and other facet measures -0.40 -0.40
#> MeasureBasis ExtremeAdjustment Model S.E. Real S.E. Infit MnSq Infit ZStd
#> 1 Fitted estimate 0 0.76 0.76 0.44 -0.30
#> 2 Fitted estimate 0 0.77 0.94 1.51 0.77
#> 3 Fitted estimate 0 0.59 0.65 1.23 0.53
#> 4 Fitted estimate 0 0.58 0.58 1.00 0.27
#> 5 Fitted estimate 0 0.55 0.60 1.22 0.52
#> 6 Fitted estimate 0 0.55 0.71 1.66 0.97
#> 7 Fitted estimate 0 0.53 0.85 2.62 1.77
#> 8 Fitted estimate 0 0.66 0.66 0.56 -0.25
#> 9 Fitted estimate 0 0.58 0.70 1.44 0.74
#> 10 Fitted estimate 0 0.53 0.53 0.89 0.11
#> 11 Fitted estimate 0 0.51 0.51 0.72 -0.19
#> 12 Fitted estimate 0 0.51 0.67 1.72 1.07
#> 13 Fitted estimate 0 0.57 0.59 1.04 0.32
#> 14 Fitted estimate 0 0.51 0.51 0.69 -0.25
#> 15 Fitted estimate 0 0.51 0.51 0.34 -1.01
#> 16 Fitted estimate 0 0.53 0.56 1.13 0.41
#> 17 Fitted estimate 0 0.56 0.78 1.95 1.20
#> 18 Fitted estimate 0 0.51 0.52 1.01 0.26
#> 19 Fitted estimate 0 0.52 0.72 1.93 1.24
#> 20 Fitted estimate 0 0.52 0.52 0.14 -1.72
#> 21 Fitted estimate 0 0.51 0.62 1.44 0.77
#> 22 Fitted estimate 0 0.53 0.53 0.13 -1.74
#> 23 Fitted estimate 0 0.53 0.53 0.65 -0.29
#> 24 Fitted estimate 0 0.51 0.51 0.61 -0.39
#> 25 Fitted estimate 0 0.51 0.51 0.61 -0.39
#> 26 Fitted estimate 0 0.57 0.57 0.59 -0.34
#> 27 Fitted estimate 0 0.58 0.60 1.08 0.37
#> 28 Fitted estimate 0 0.51 0.51 0.29 -1.17
#> 29 Fitted estimate 0 0.54 0.66 1.54 0.86
#> 30 Fitted estimate 0 0.54 0.82 2.35 1.56
#> 31 Fitted estimate 0 0.55 0.55 0.43 -0.67
#> 32 Fitted estimate 0 0.60 0.63 1.07 0.37
#> 33 Fitted estimate 0 0.54 0.54 0.50 -0.56
#> 34 Fitted estimate 0 0.54 0.57 1.11 0.39
#> 35 Fitted estimate 0 0.52 0.53 1.04 0.30
#> 36 Fitted estimate 0 0.55 0.55 0.29 -1.03
#> 37 Fitted estimate 0 0.56 0.56 0.79 -0.03
#> 38 Fitted estimate 0 0.55 0.55 0.43 -0.68
#> 39 Fitted estimate 0 0.68 0.68 0.70 -0.03
#> 40 Fitted estimate 0 0.62 0.62 0.54 -0.34
#> 41 Fitted estimate 0 0.68 0.68 0.59 -0.19
#> 42 Fitted estimate 0 0.68 0.71 1.08 0.40
#> 43 Fitted estimate 0 0.68 1.28 3.53 1.94
#> 44 Fitted estimate 0 0.79 0.79 0.70 0.07
#> 45 Fitted estimate 0 0.79 0.79 0.79 0.17
#> 46 Fitted estimate 0 0.79 0.79 0.73 0.11
#> 47 Fitted estimate 0 0.79 0.79 0.57 -0.08
#> 48 Fitted estimate 0 1.06 1.08 1.03 NA
#> 49 Fitted estimate 0 0.20 0.21 1.13 0.56
#> 50 Fitted estimate 0 0.24 0.24 0.99 0.08
#> 51 Fitted estimate 0 0.20 0.21 1.10 0.42
#> 52 Fitted estimate 0 0.22 0.22 0.79 -0.60
#> 53 Fitted estimate 0 0.18 0.19 1.12 0.53
#> 54 Fitted estimate 0 0.19 0.19 0.86 -0.46
#> 55 Fitted estimate 0 0.14 0.16 1.20 1.00
#> 56 Fitted estimate 0 0.14 0.14 0.95 -0.17
#> 57 Fitted estimate 0 0.14 0.14 0.88 -0.57
#> Outfit MnSq Outfit ZStd PtMea Corr Anch Status Element ObservedAverage
#> 1 0.39 -1.22 NA P015 3.67
#> 2 1.04 0.27 NA P045 3.67
#> 3 1.31 0.68 NA P036 3.33
#> 4 0.99 0.18 NA P030 3.33
#> 5 1.31 0.68 NA P027 3.17
#> 6 1.91 1.44 NA P013 3.17
#> 7 2.59 2.13 NA P025 3.00
#> 8 0.60 -0.54 NA P006 3.40
#> 9 1.53 0.99 NA P002 3.33
#> 10 0.85 -0.08 NA P019 3.00
#> 11 0.69 -0.40 NA P034 2.83
#> 12 1.75 1.26 NA P021 2.67
#> 13 1.05 0.29 NA P001 3.00
#> 14 0.68 -0.42 NA P031 2.67
#> 15 0.34 -1.39 NA P035 2.67
#> 16 1.09 0.35 NA P004 3.00
#> 17 1.93 1.37 NA P024 2.40
#> 18 1.01 0.20 NA P038 2.50
#> 19 1.95 1.49 NA P048 2.67
#> 20 0.14 -2.32 NA P022 2.33
#> 21 1.44 0.86 NA P003 2.83
#> 22 0.12 -2.46 NA P026 2.17
#> 23 0.67 -0.46 NA P020 2.17
#> 24 0.62 -0.57 NA P005 2.67
#> 25 0.62 -0.57 NA P010 2.67
#> 26 0.62 -0.49 NA P011 2.40
#> 27 1.13 0.40 NA P028 2.20
#> 28 0.29 -1.58 NA P008 2.50
#> 29 1.49 0.93 NA P018 2.17
#> 30 2.57 2.11 NA P012 2.17
#> 31 0.43 -1.09 NA P042 2.00
#> 32 1.10 0.36 NA P039 2.00
#> 33 0.53 -0.81 NA P046 2.17
#> 34 1.03 0.25 NA P043 2.17
#> 35 1.06 0.30 NA P009 2.33
#> 36 0.31 -1.48 NA P017 2.00
#> 37 0.79 -0.19 NA P044 2.00
#> 38 0.42 -1.10 NA P007 2.00
#> 39 0.72 -0.35 NA P023 1.50
#> 40 0.58 -0.67 NA P047 1.67
#> 41 0.64 -0.53 NA P041 1.50
#> 42 0.91 0.04 NA P014 1.50
#> 43 3.31 2.74 NA P016 1.50
#> 44 0.68 -0.42 NA P037 1.33
#> 45 0.88 -0.03 NA P040 1.33
#> 46 0.73 -0.32 NA P029 1.33
#> 47 0.52 -0.81 NA P033 1.33
#> 48 1.23 0.56 NA P032 1.17
#> 49 1.07 0.40 0.59 R03 2.30
#> 50 0.98 0.00 0.59 R06 2.03
#> 51 1.12 0.63 0.59 R04 2.30
#> 52 0.76 -1.14 0.59 R05 2.16
#> 53 1.24 1.22 0.59 R02 2.62
#> 54 0.83 -0.82 0.59 R01 2.77
#> 55 1.21 1.41 0.63 Organization 2.24
#> 56 0.93 -0.45 0.63 Language 2.32
#> 57 0.89 -0.71 0.63 Content 2.59
#> AdjustedAverage StandardizedAdjustedAverage ModelBasedSE FitAdjustedSE
#> 1 3.69 3.69 0.76 0.76
#> 2 3.66 3.66 0.77 0.94
#> 3 3.44 3.44 0.59 0.65
#> 4 3.41 3.41 0.58 0.58
#> 5 3.34 3.34 0.55 0.60
#> 6 3.19 3.19 0.55 0.71
#> 7 3.19 3.19 0.53 0.85
#> 8 3.11 3.11 0.66 0.66
#> 9 3.07 3.07 0.58 0.70
#> 10 3.02 3.02 0.53 0.53
#> 11 2.92 2.92 0.51 0.51
#> 12 2.86 2.86 0.51 0.67
#> 13 2.76 2.76 0.57 0.59
#> 14 2.75 2.75 0.51 0.51
#> 15 2.75 2.75 0.51 0.51
#> 16 2.69 2.69 0.53 0.56
#> 17 2.66 2.66 0.56 0.78
#> 18 2.62 2.62 0.51 0.52
#> 19 2.58 2.58 0.52 0.72
#> 20 2.52 2.52 0.52 0.52
#> 21 2.51 2.51 0.51 0.62
#> 22 2.35 2.35 0.53 0.53
#> 23 2.35 2.35 0.53 0.53
#> 24 2.35 2.35 0.51 0.51
#> 25 2.35 2.35 0.51 0.51
#> 26 2.33 2.33 0.57 0.57
#> 27 2.26 2.26 0.58 0.60
#> 28 2.18 2.18 0.51 0.51
#> 29 2.16 2.16 0.54 0.66
#> 30 2.16 2.16 0.54 0.82
#> 31 2.10 2.10 0.55 0.55
#> 32 2.07 2.07 0.60 0.63
#> 33 2.06 2.06 0.54 0.54
#> 34 2.06 2.06 0.54 0.57
#> 35 2.03 2.03 0.52 0.53
#> 36 1.99 1.99 0.55 0.55
#> 37 1.90 1.90 0.56 0.56
#> 38 1.74 1.74 0.55 0.55
#> 39 1.61 1.61 0.68 0.68
#> 40 1.58 1.58 0.62 0.62
#> 41 1.56 1.56 0.68 0.68
#> 42 1.48 1.48 0.68 0.71
#> 43 1.48 1.48 0.68 1.28
#> 44 1.38 1.38 0.79 0.79
#> 45 1.38 1.38 0.79 0.79
#> 46 1.36 1.36 0.79 0.79
#> 47 1.36 1.36 0.79 0.79
#> 48 1.18 1.18 1.06 1.08
#> 49 2.09 2.23 0.20 0.21
#> 50 2.10 2.24 0.24 0.24
#> 51 2.17 2.31 0.20 0.21
#> 52 2.29 2.44 0.22 0.22
#> 53 2.54 2.70 0.18 0.19
#> 54 2.73 2.88 0.19 0.19
#> 55 2.16 2.30 0.14 0.16
#> 56 2.23 2.37 0.14 0.14
#> 57 2.57 2.73 0.14 0.14
#>
#> $settings
#> $settings$facets
#> NULL
#>
#> $settings$totalscore
#> [1] TRUE
#>
#> $settings$umean
#> [1] 0
#>
#> $settings$uscale
#> [1] 1
#>
#> $settings$udecimals
#> [1] 2
#>
#> $settings$reference
#> [1] "both"
#>
#> $settings$label_style
#> [1] "both"
#>
#> $settings$omit_unobserved
#> [1] FALSE
#>
#> $settings$xtreme
#> [1] 0
#>
#> $settings$fair_se
#> [1] FALSE
#>
#> $settings$ci_level
#> [1] 0.95
#>
#> $settings$rating_min
#> [1] 1
#>
#> $settings$rating_max
#> [1] 4
#>
#> $settings$score_map
#> # A tibble: 4 × 2
#> OriginalScore InternalScore
#> <int> <int>
#> 1 1 1
#> 2 2 2
#> 3 3 3
#> 4 4 4
#>
#> $settings$model
#> [1] "RSM"
#>
#> $settings$method
#> [1] "PCM/RSM"method = "JML" is shown here for a JMLE-oriented
migration comparison. Do not infer readiness from Converged
alone: require InferenceReady = TRUE for the
numerical-readiness criteria and review the terminal-gradient guidance
when severity is "review" or "fail". Numerical
readiness does not override a Data, Design, or Stability hold; use the
readiness table before interpreting or reporting the fit. For new
analysis scripts, prefer fit_mfrm(method = "MML") directly.
MML integrates over the person distribution under an N(0, 1) prior and
exposes per-person posterior SEs that JML cannot produce.
Translating the specification file
The mapping below covers the most common FACETS specification keywords.
FACETS and labels
Facets = 3
Models = ?,?,?,R5
Labels =
1, Examinee
1 = P01
...
2, Rater
1 = R1
...
3, Criterion
1 = Content
...
translates to:
fit_mfrm(
data = examinee_long,
person = "Examinee",
facets = c("Rater", "Criterion"),
score = "Score",
rating_min = 1,
rating_max = 5,
model = "RSM"
)Models = ?,?,?,R5 becomes model = "RSM" and
the R5 rating-scale declaration becomes
rating_min = 1, rating_max = 5. For a partial-credit
specification, pass model = "PCM" and identify the facet
that carries the step thresholds with step_facet = "Rater"
(or the appropriate facet name). The declaration preserves the intended
category map, but it is not a threshold anchor. A missing boundary
category remains review evidence for the separate element-boundary
contract. A missing internal category in a polytomous fitted ladder
creates an unsupported adjacent-step contrast and stops fitting before
optimization. Review or revise the data support rather than copying
FACETS category-dropping behavior implicitly.
Anchoring
A FACETS D = 2, A = block:
D = 2
A = 1, 0.0
2, 0.5
becomes an anchors data frame:
anchors <- data.frame(
facet = "Rater",
level = c("R1", "R2"),
estimate = c(0.0, 0.5),
stringsAsFactors = FALSE
)
fit <- fit_mfrm(..., anchors = anchors)review_mfrm_anchors() normalizes and reports on the
constraint block before the fit runs, surfacing duplicate/direct-group
overlap and local support-count issues. It does not evaluate assignment
connectedness, source-fit readiness, or cross-run element invariance;
use the design-network route and substantive identity evidence
separately.
Bias and interaction
For FACETS Table 14 bias output between Rater and Criterion, the closest mfrmr screening route is:
diag <- diagnose_mfrm(fit)
bias <- estimate_bias(fit, diag,
facet_a = "Rater", facet_b = "Criterion")
summary(bias)estimate_all_bias() enumerates every non-person facet
pair in one call.
Wright map / variable map
For a shared-logit visual display of persons, facet levels, and step thresholds, first create the FACETS-organized summary and retain its result object:
review <- summary(fit, profile = "facets", detail = "brief")
review$decision
res <- review$results
# Primary final-scale figure: all locations and available facet uncertainty.
plot(res, type = "wright", renderer = "native", show_ci = TRUE,
top_n = Inf, preset = "publication")Read review$decision before using the FACETS-organized
tables. It reports the same stored mfrmr readiness decision shown by
print(fit); the facets profile changes the
organization of the review, not the estimator and not the evidence
threshold. FormalInference = "No" therefore remains a stop
on substantive reporting even when a familiar FACETS-style table or plot
is available.
plot_wright_unified() is the corresponding explicit
helper when the Wright map is the main figure. For readers who expect
the FACETS Table 6-style asterisk ruler and horizontal, rubric-labelled
category transitions, define one label for every retained original
score:
rubric_labels <- setNames(
your_rubric_labels,
fit$prep$score_map$OriginalScore
)
plot(res, type = "wright", renderer = "facets", show_ci = FALSE,
category_labels = rubric_labels, preset = "publication")show_ci = FALSE is the closest FACETS-style visual
grammar. Setting show_ci = TRUE deliberately creates a
hybrid display: the ruler is FACETS-style, but the intervals are mfrmr
uncertainty estimates. Neither renderer implies that FACETS performed
the estimation or that the two programs are numerically equivalent.
For the Bond-and-Fox-style follow-up requested by many FACETS users, put Infit on the horizontal axis and the measure on the vertical axis. Person rows remain opt-in:
plot(res, type = "fit_pathway", fit_stat = "Infit",
include_person = TRUE, top_n_person = 12,
person_labels = "none", facet_labels = "flagged")Use draw = FALSE or
plot_data(fit, type = "wright") when you need the
underlying coordinates for a custom ggplot2, base-R, or
Quarto graphic.
Fit df and ZSTD review
FACETS users often compare Infit/Outfit MnSq together with ZStd
columns. In mfrmr, treat MnSq as the primary fit statistic
and use the df/ZSTD columns to explain how the same MnSq values were
standardized. The direct review path is:
diag <- diagnose_mfrm(fit, residual_pca = "none", fit_df_method = "both")
fm <- fit_measures_table(fit, diagnostics = diag,
facet = "Rater", fit_df_method = "both")
fm$facets_table
fm$df_sensitive
plot(fm, type = "df_sensitivity")df_sensitivity reports the engine-vs-FACETS-style df
comparison row by row; df_sensitive keeps only rows where
the df convention changes the |ZSTD| flag or materially changes the ZSTD
interpretation. The same status taxonomy is used by
facets_fit_review(), so a table-oriented review and an
external FACETS comparison use the same language.
Group anchoring and DFF
FACETS D = ..., G = group-anchor blocks for differential
facet functioning translate to the group_anchors argument
and the analyze_dff() follow-up:
group_anchors <- data.frame(
facet = "Criterion",
level = "Content",
group = c("Native", "Non-native"),
estimate = c(0.0, 0.0),
stringsAsFactors = FALSE
)
fit_g <- fit_mfrm(..., group_anchors = group_anchors)
dff <- analyze_dff(fit_g, diag, facet = "Criterion",
group = "FirstLanguage", method = "refit")A group-anchor target is an external mean constraint, not an empirical link. Its use requires a defensible equal-mean or known-target assumption for the declared elements and does not connect otherwise unobserved rating subsets.
Reviewing output contracts and fit tables
When migrating an existing study,
facets_output_contract_review() checks whether the
package-generated report components satisfy the FACETS-style output
contract encoded in the package:
contract_review <- facets_output_contract_review(
fit,
diagnostics = diag,
branch = "facets"
)
summary(contract_review)
contract_review$missing_preview
contract_review$metric_checksThe resulting object reviews column coverage and package-native
metric checks. It is not a claim that mfrmr has reproduced
FACETS estimates numerically. For external numerical comparison, use an
exported FACETS fit table and facets_fit_review().
When that comparison involves an MML fit, remember that
mfrmr evaluates residual-based fit statistics at shrunken EAP person
measures while FACETS uses JMLE estimates, so MnSq differences can
reflect the residual basis rather than a fit-computation difference;
refit with method = "JML" before attributing such gaps. See
facets_fit_df_guide() for this boundary and for the
separate df/ZSTD standardization conventions.
If you already have a FACETS fit table on disk, read it first and then run the fit review. This does not run FACETS; it consumes an exported or otherwise harmonized table.
facets_fit <- read_facets_fit_table(
"score.2.txt",
facet_map = c("1" = "Person", "2" = "Rater", "3" = "Criterion")
)
review <- facets_fit_review(
fit,
diagnostics = diag,
facets_fit = facets_fit,
external_zstd_tolerance = 0.05
)
review$df_sensitivity
review$df_sensitive
review$external_table_quality
review$external_comparison
plot(review, type = "df_sensitivity")Use external_comparison for the supplied FACETS table
and df_sensitivity for the engine-vs-FACETS-style df
convention check. This separation keeps external numerical differences
distinct from ZSTD differences caused by df standardization.
external_table_quality is the first place to look if the
FACETS export only contains ZStd and T.Count columns, or if duplicate
Facet x Level rows were supplied.
Producing FACETS-style output files
For traceability or downstream tools that expect FACETS output files,
facets_output_file_bundle() writes a parallel set of
fixed-width or CSV exports:
files <- facets_output_file_bundle(
fit,
diagnostics = diag,
out_dir = tempdir(),
include = c("graph", "score")
)For RSM and PCM the score-side helpers are available. Under
GPCM the score-side bundle is intentionally restricted; see
?gpcm_capability_matrix and the
mfrmr-gpcm-scope vignette for the documented
limitation.
Recommended next steps
After a FACETS-oriented package-native fit is in hand, the recommended mfrmr reporting workflow extends the analysis with:
-
review_mfrm_anchors()before anchored fitting, anddetect_anchor_drift()/plot_anchor_drift()when common elements define a cross-form or cross-wave link. -
diagnose_mfrm(diagnostic_mode = "both")for the strict marginal screen alongside the residual stack. -
rating_scale_table(),category_structure_report(), andcategory_curves_report()for category-functioning evidence. -
fair_average_table()when FACETS Table 12-style fair-average review is needed. -
plot(fit, type = "wright")orplot_wright_unified()for a variable-map view of targeting and threshold placement. -
estimate_bias(),bias_interaction_report(), andbias_pairwise_report()when FACETS Table 14-style local interaction screening is substantively relevant. -
reporting_checklist()for a manuscript-readiness summary. -
build_apa_outputs()for Method and Results paragraphs and APA tables. -
build_mfrm_manifest()andbuild_mfrm_replay_script()for the reproducibility bundle alongside the FACETS-style handoff out of the box.
The mfrmr-workflow vignette covers the full sequence end
to end; the mfrmr-reporting-and-apa vignette focuses on
manuscript preparation; the mfrmr-linking-and-dff vignette
covers anchoring, drift, and DFF in detail.