
Derive a simulation specification from a fitted MFRM object
Source:R/api-simulation-spec.R
extract_mfrm_sim_spec.RdDerive a simulation specification from a fitted MFRM object
Arguments
- fit
Output from
fit_mfrm().- assignment
Assignment design to record in the returned specification. Use
"resampled"to reuse empirical person-level rater-assignment profiles from the fitted data, or"skeleton"to reuse the observed person-by-facet design skeleton from the fitted data.- latent_distribution
Latent-value generator to record in the returned specification.
"normal"stores spread summaries for parametric draws;"empirical"additionally activates centered empirical resampling from the fitted person/rater/criterion estimates.- source_data
Optional original source data used to recover additional non-calibration columns, currently person-level
grouplabels, when building a fit-derived observed response skeleton.- person
Optional person column name in
source_data. Defaults to the person column recorded infit.- group
Optional group column name in
source_datato merge into the returneddesign_skeletonas person-level metadata.
Details
extract_mfrm_sim_spec() uses a fitted model as a practical starting point
for later simulation studies. It extracts:
design counts from the fitted data
empirical spread of person and facet estimates
optional empirical support values for semi-parametric draws
fitted threshold values
either a simplified assignment summary (
"crossed"/"rotating"), empirical resampled assignment profiles ("resampled"), or an observed response skeleton ("skeleton", optionally carryingGroup/Weight)when the fit used the latent-regression branch, the fitted
population_formula, coefficient vector, residual variance, and the stored person-level covariate table, including model-matrix xlevel and contrast provenance for categorical covariates
This is intended as a fit-derived parametric starting point, not as a claim that the fitted object perfectly recovers the true data-generating mechanism. Users should review and, if necessary, edit the returned specification before using it for design planning.
GPCM fits with the same slope and step owner are supported here for direct data generation
and parameter-recovery checks, provided that the returned simulation
specification stores both a threshold table and a parallel slope table.
The same fit-derived specification can feed caveated role-based design
evaluation, population forecasting, and fit-based report/export bundles.
Diagnostic and signal-detection design screening is available with explicit
caveats. Full FACETS score-side contract review, posterior predictive checks,
and MCMC estimation are not available for GPCM.
If you want to carry person-level group labels into a fit-derived observed
response skeleton, provide the original source_data together with
person and group. Group labels are treated as person-level metadata and
are checked for one-label-per-person consistency before being merged.
Interpreting output
The returned object is a simulation specification, not a prediction about one future sample. It captures one convenient approximation to the observed design and estimated spread in the fitted run.
Examples
# \donttest{
toy <- simulate_mfrm_data(
n_person = 8,
n_rater = 3,
n_criterion = 2,
seed = 123
)
fit <- fit_mfrm(toy, "Person", c("Rater", "Criterion"), "Score", method = "JML", maxit = 30)
#> Warning: Category support is retained but requires review: at least one fitted or local scope contains an empty or singleton category/transition cell. The fit may be inspected, but category-information strength has not been certified; inspect `fit$data_review$category_support` before inference.
spec <- extract_mfrm_sim_spec(fit, latent_distribution = "empirical")
spec$assignment
#> [1] "crossed"
spec$model
#> [1] "RSM"
head(spec$threshold_table)
#> # A tibble: 3 × 4
#> StepFacet StepIndex Step Estimate
#> <chr> <int> <chr> <dbl>
#> 1 Common 1 Step_1 -2.79
#> 2 Common 2 Step_2 -0.583
#> 3 Common 3 Step_3 3.37
# }