Build a reproducibility manifest for an MFRM analysis
Source:R/api-export-bundles.R
build_mfrm_manifest.RdBuild a reproducibility manifest for an MFRM analysis
Usage
build_mfrm_manifest(
fit,
diagnostics = NULL,
bias_results = NULL,
population_prediction = NULL,
unit_prediction = NULL,
plausible_values = NULL,
include_person_anchors = FALSE,
data = NULL
)Arguments
- fit
Output from
fit_mfrm()orrun_mfrm_facets().- diagnostics
Optional output from
diagnose_mfrm(). WhenNULL, diagnostics are computed withresidual_pca = "none".- bias_results
Optional output from
estimate_bias()or a named list of bias bundles.- population_prediction
Optional output from
predict_mfrm_population().- unit_prediction
Optional output from
predict_mfrm_units().- plausible_values
Optional output from
sample_mfrm_plausible_values().- include_person_anchors
If
TRUE, include person measures in the exported anchor table.- data
Optional original analysis data frame. When supplied, the manifest's
input_hashrow fordatais computed against the user's untouched input rather than the package's internalprep$data(which carries synthesisedWeight/score_kcolumns) so the recorded fingerprint matches whatread.csv()will produce in a replay session.
Details
This helper captures the package-native equivalent of the Streamlit app's configuration export. It summarizes analysis settings, source columns, anchoring information, and which downstream outputs are currently available.
When to use this
Use build_mfrm_manifest() when you want a compact, machine-readable record
of how an analysis was run. Compared with related helpers:
export_mfrm()writes analysis tables only.build_mfrm_manifest()records settings and available outputs.build_mfrm_replay_script()creates an executable R script.export_mfrm_bundle()writes a shareable folder of files.
Output
The returned bundle has class mfrm_manifest and includes:
summary: one-row analysis overviewenvironment: package/R/platform metadatamodel_settings: key-value model settings tablesource_columns: key-value data-column tableestimation_control: key-value optimizer settings tableanchor_summary: facet-level anchor summaryanchors: machine-readable anchor tablehierarchical_review: retained traceability table for hierarchical / small-sample design flagsmissing_recoding: retained traceability table for missing-code recodingshrinkage_review: retained traceability table for shrinkage settingsavailable_outputs: availability table for diagnostics/bias/PCA/prediction outputsdependencies,input_hash, andsession_info: reproducibility metadata tablessettings: manifest build settings
Interpreting output
The summary table is the direct place to confirm that you are looking at
the intended analysis. The model_settings, source_columns, and
estimation_control tables are designed for reproducibility records and
method write-up.
Active latent-regression fits also record their population-model provenance
there, including the fitted scoring basis, stored population_formula, and
person-level contract used by the fitted population model. When categorical
background variables are expanded through stats::model.matrix(),
population_xlevel_variables and population_contrast_variables identify
the variables whose fitted coding must be preserved for replay/scoring.
The available_outputs table is especially useful before building bundles,
because it tells you whether residual PCA, anchors, bias results, or
prediction-side artifacts are already available. A practical reading order is
summary first, available_outputs second, and anchors last when
reproducibility depends on fixed constraints.
Typical workflow
Fit a model with
fit_mfrm()orrun_mfrm_facets().Compute diagnostics once with
diagnose_mfrm()if you want explicit control over residual PCA.Build a manifest and inspect
summaryplusavailable_outputs.If you need files on disk, pass the same objects to
export_mfrm_bundle().
For bounded GPCM fits, the manifest is available with an explicit
gpcm_boundary table. It records supported direct diagnostics/reporting
surfaces while keeping full FACETS score-side contract review blocked and
routing design forecasting through its separate caveated capability row.
Examples
if (FALSE) { # interactive()
toy <- load_mfrmr_data("example_core")
fit <- fit_mfrm(toy, "Person", c("Rater", "Criterion"), "Score",
method = "JML", maxit = 30)
diag <- diagnose_mfrm(fit, residual_pca = "none")
manifest <- build_mfrm_manifest(fit, diagnostics = diag)
manifest$summary[, c("Model", "Method", "Observations", "Facets")]
manifest$available_outputs[, c("Component", "Available")]
}