The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Unreleased. This release connects rating analysis, assessment planning and reporting. You can move from a fitted model or rating plan to figures, tables and an editable report while keeping its assumptions visible.
mfrm_report() now brings generalizability and decision
studies (G/D studies), anchor/linking reviews, individual or batch bias
screens and model-choice reviews into the shared reporting workflow.
Editable templates help you write the Methods and Results, and exports
keep the underlying tables and analysis. You can record what high scores
mean alongside the results. See reporting
examples.Continue a default single-family GPCM analysis in Stan while
retaining its estimated normal population and supported fixed anchors.
export_mfrm_model() writes the code, data and parameter
maps with explicit priors. RSM/PCM and fixed-population single-family
GPCM also support brms; two-family GPCM supports Stan.
read_mfrm_posterior() brings saved summaries, including
population mean/SD, back to figures and reports with credible intervals
and sampling review. Population regression remains unsupported. See model
export.
Supported MML models can show fitting progress and automatically increase numerical integration accuracy up to a user-set maximum. Two-family GPCM retains experimental inference limits. The GPCM guide and detailed changes explain these features, calibration reuse, external-software comparisons and numerical improvements.
The visual gallery adds ggplot2 examples with interactive Plotly views, static figures and the underlying values for rater feedback, assessment planning and score probabilities.
Source installation requires cpp11 0.5.4 or later for compatible C++ headers.
Complete worked examples remain in the help pages. Short primary
workflows run normally; supplementary examples show how to execute them
explicitly with example("topic", run.dontrun = TRUE),
including their printed results. Related short summary and plot methods
are documented with their generating function; their existing help
aliases remain.
Model setup, residual PCA, Q3, residual plots, halo analyses and agreement summaries avoid calculations that their requested results do not use. The same input checks, numerical settings and interpretation limits apply. Simulation specifications and design reviews also avoid repeated calculations, with unchanged design tables, recommendation rules and numerical settings. Testlet fitting and scoring avoid redundant calculations. Scoring also avoids work for design patterns unused by the requested Persons. Quadrature, continuous posterior integration and accuracy checks are unchanged. RSM and PCM marginal maximum likelihood calculations reuse response probabilities for repeated rating conditions on a shared quadrature grid. Integration and convergence settings are unchanged. Model comparisons reject stale or nonstationary MML solutions before expensive uncertainty calculations, while retaining the existing eligibility criteria.
Installing 0.2.4 does not update saved calculations.
Corrections affect some fit statistics, bias/fair-score calculations,
uncertainty and comparisons. Keep your original inputs, fitted objects
and settings, then use the updating
guide to identify which results need rebuilding.
help("mfrmr_workflow_methods") explains the applicable
checks; not every correction requires refitting.
Simulation files also check the package implementation and numerical
environment before loading or resuming a run. An implementation change
can make an older file incompatible even when its stored numerical
values remain readable. Retain the original package installation and
environment to continue that run; use a new file path when recomputing
after an update. The default file_refit = "never" rejects
mismatches without replacing the saved file.
Use plot() on result objects instead of retired
standalone drawing helpers; help("mfrmr_plot_migration")
lists replacements. Model comparisons now reject likelihood-ratio tests
when the larger model omits terms from the smaller one; recreate
affected comparisons from the existing fits.
The detailed change record is also installed at
system.file("NEWS-0.2.4-details.md", package = "mfrmr").
mfrmr 0.2.3.1 was a focused CRAN maintenance release. It did not change the public R API or fitted-model contracts introduced in 0.2.3.
Rboolean definition.mfrmr 0.2.3 improves the reliability and interpretation of the existing many-facet workflows, with particular emphasis on the bounded GPCM introduced before this release. No existing exported function has been removed.
gpcm_mml_quadrature_sensitivity() for explicit
same-data comparison of a fitted GPCM-MML result across quadrature
grids. It reports changes in the marginal likelihood, relative slopes,
raw observed-information quantities, population scale, and fitted
probabilities without silently refitting during summary()
or print(). Results support summary(),
print(), as.data.frame(), and
apa_table().print() and summary() for fitted models
now begin with a plain-language interpretation status, the availability
of formal inference, the main reason for any hold, and a suggested next
action.screening_only and are not
described as confidence intervals.min_obs remains
a computability guard rather than a claim about power or adequate sample
size.digest
package is no longer required by the distributed package.Standardized the package’s canonical joint-maximum-likelihood
label as "JML" across fitted objects, engine state,
manifests, and replay scripts. method = "JMLE" remains
accepted only as a backward-compatible input alias and now resolves
immediately to "JML".
Revised first-contact guides and result guidance to use reader-facing wording while retaining documented API and status vocabulary.
Clarified that maxit is a prespecified computational
ceiling rather than a result-selection control. Iteration-limited fits
now direct users to keep the specification fixed, follow a prespecified
ceiling sequence, and withhold interpretation until the
numerical-readiness criteria are satisfied.
Replaced blanket \dontrun{} and
@examplesIf interactive() guards with checkable examples or
\donttest{} blocks. Only the two workflows that need
separately generated ConQuest files remain \dontrun{}, and
only the local Shiny viewer remains interactive-only. This makes most
examples executable while keeping workflows that require separately
generated files clearly marked.
Corrected bounded-GPCM score-side delta-method uncertainty to use
the expected-score derivative ScoreSlope * Var.
ScoreSideLogitSE remains the logit-side component SE, while
ScoreSideSE and its interval columns now apply
ScoreSlope * Var * ScoreSideLogitSE on the expected-score
scale.
Refit DFF/DIF contrasts are now explicitly exploratory: separate-subgroup plug-in standard errors are labeled as conditional on baseline anchors and as omitting baseline-anchor uncertainty and cross-refit covariance. Refit rows no longer receive ETS A/B/C, formal-inference, or primary-reporting eligibility.
Bias summaries and multi-pair bias collections now use
ScreenPositive as the primary label and expose explicit
screening-only eligibility metadata. Historical Significant
names remain as compatibility aliases.
import_erm_fit() now reads the current
eRm Person Parameter / Std.Error
schema as well as historical estimate labels, preserves usable person
IDs, and rejects ambiguous or misaligned schemas instead of silently
returning empty or recycled person rows.
q3_statistic() and its print method now identify the
result as mfrmr’s standardized, Person-by-level aggregated-residual
Q3-style screen. Legacy YenFlag names remain for
compatibility, while fixed 0.20/0.30 rules are explicitly described as
uncalibrated heuristics rather than raw-residual Yen Q3 critical
values.
as_kable.apa_table(format = "pipe") now appends an
APA note once after the complete Markdown table. Previously the
vectorized append could repeat the same note after every rendered table
line.
Added the package hex sticker.
Tightened the FACETS positioning contract against the current 64-bit 4.5.1 software target: coverage rows describe package-native surfaces, not external numerical equivalence, and mixed models, multiple scales, threshold anchoring, and fixed-calibration scoring remain outside 0.2.2.
Corrected the interrater_agreement_table()
documentation: ExpectedExact is computed from fitted
category-probability vectors, not marginal-frequency chance
agreement.
Clarified that exact Person-by-facet duplicate rows are retained but place Data readiness under review; legitimate repeated ratings should carry a distinguishing event or occasion facet.
Design, signal-detection, and population-prediction summaries now
expose a deterministic named-facet review as
structural_design_review. The review reports design
balance, coverage, connectivity, and readiness without implying Monte
Carlo performance or arbitrary-facet simulation support.
InferenceReady. EM relative
log-likelihood convergence remains visible as an engine-specific
stopping condition but no longer overrides the common
numerical-readiness contract.fit_mfrm() now shares likelihood and
analytical-gradient work at an identical parameter vector. MML direct
and EM paths reuse quadrature probabilities and posterior quantities,
while JML reuses category probabilities and stable observed log
probabilities.options(mfrmr.use_cpp11_backend = FALSE) for an explicit
reference-path comparison; GPCM continues to use its validated R
kernel.optimizer = "auto" selects limited-memory L-BFGS-B for
MML and for large JML parameter vectors; "BFGS" and
"L-BFGS-B" remain explicit choices. The requested and
actual methods are recorded for summaries, exports, and replay. The
portable reltol setting is mapped to L-BFGS-B
factr and pgtol; actual stage controls are
recorded alongside the requested and selected-stage settings.plot_apa_figure_one() now emits one consolidated
readiness warning per call, retains the readiness table and
interpretation note on the composite, and visibly labels a non-ready
result as a manuscript-oriented draft for review rather than a finished
publication figure.summary(fit) now supports profile = "fit",
"facets", and "reporting". The default fit
profile remains fast and does not compute diagnostics. The opt-in FACETS
profile organizes fitted measures, fit, precision, categories, steps,
and plot routes in a familiar reading order; it does not imply that
FACETS was run or that its estimates are numerically equivalent.mfrm_diagnostics object. The returned summary records
provenance and section availability, and compute = "never"
prevents automatic diagnostic computation.detail = "brief" gives a selective console view without
person identifiers. Full structured results remain available through the
returned object.example_operational adds a reproducible 48-person
teaching dataset with a connected two-rater assignment, moderate
workload imbalance, and six planned omissions. It is the primary applied
tutorial dataset; example_core remains an explicitly
idealized complete-crossing example, and example_bias
remains the planted-effect diagnostic example.mfrmr_example_operational_design declares the 288
planned assignment cells separately from the 282 observed scores.
describe_mfrm_data() can compare an explicit
expected_design with observed cells, report planned
omissions and unexpected observations, review Person-facet graph
components, summarize sparse links and duplicate cells, and keep person
labels out of its default compact output. Without a roster, structural
missingness is reported as not assessed rather than inferred from a
hypothetical complete crossing.list_mfrmr_data(details = TRUE) now explains the design
and intended role of every bundled synthetic dataset. The compact
examples can be regenerated with fixed seeds. Combined-study objects now
explain that relabeling prevents identifier collisions but does not
establish a common scale without an explicit anchor/linking design.The public default remains reltol = 1e-9 for the
initial optimizer stage; bounded polishing is invoked only when
reltol <= 1e-9 and code zero precedes the
terminal-gradient check. The fitted object records requested and
selected-stage controls for replay. Model specification, design,
identification, and inferential assumptions remain separate review
questions.
Non-finite scores or weights, blank person/facet identifiers, and
fractional maxit or quad_points values now
fail before expensive optimization with a focused correction. Duplicate
Person-by-facet cells warn once per fit, report both affected rows and
duplicate cells, and propagate a Data review state downstream.
missing_codes = TRUE now applies the conventional
sentinel set to scores while preserving person and facet IDs. An
explicit character vector remains an explicit request to apply those
codes across all selected model columns; the review records the scope
used for each column.
On-the-fly ConQuest overlap examples now use the same
1e-9 tolerance. Their bundle summaries, settings, written
README files, and compact console summaries report the actual mfrmr fit
controls, MML engine, terminal gradient, convergence state, and
inference readiness. A fit requiring convergence review is clearly
withheld from the external comparison step.
fit_mfrm() now gives focused guidance for common
undeclared missing-value codes and records score-category recoding in
the fitted object. It also distinguishes an explicitly silent anchor
policy from policies that report anchor review information.
Partial-credit fits infer the step facet only when a familiar
item-like role is unambiguous. Otherwise, the warning shows how to set
step_facet explicitly. Rating-scale fits report that
step_facet and slope_facet are not
used.
Direct data-frame input to mfrm_results() is limited
to data with recognizable measurement roles. Ambiguous columns now lead
to an explicit fit_mfrm(..., method = "MML") instruction
instead of a guessed analysis.
describe_mfrm_data() computes agreement
automatically only when a rater-like facet is present. Agreement output
names the facet actually used and avoids presenting a generic facet as a
rater.
Latent regression rejects a non-person-centered parameterization that would confound the population intercept with the measurement scale. ## Interpretation and compatibility boundaries
Optimizer code zero is no longer treated as sufficient evidence of a clean solution when the terminal gradient remains large. Summaries label this state as requiring review and explain the diagnostic basis.
facets_feature_coverage() and
gpcm_capability_matrix() now present concise user-facing
capability, limitation, and recommended-route information. Only
documented user-facing columns are returned.
FACETS-style plots reproduce a reading convention, not FACETS numerical estimation. ConQuest comparison helpers cover documented unidimensional MML overlap and do not automate ConQuest or claim general numerical equivalence.
The generated ConQuest overlap command now states quadrature MML
explicitly and requests four machine-readable CSV outputs.
normalize_conquest_overlap_exports() reads those files,
reconstructs the sum-constrained item location, trims fixed-width person
identifiers, and prepares them for
review_conquest_overlap().
The documented binary, item-only, one-covariate MML handoff was compared in a matched 31-node run with ConQuest 5.47.5 Demonstration Version. The result supports that narrow handoff and is not a claim of general numerical equivalence.
export_mfrm_results() now labels every preset as a
potentially identifying analysis archive, warns before writing unless
the risk is explicitly acknowledged, and records privacy status in its
summary, HTML index, and written-files manifest. Fit-level
export_mfrm_bundle() archives follow the same warning and
metadata contract, and the lower-level export_mfrm_tables()
CSV writer now records per-file handling metadata. ConQuest overlap
bundles likewise warn on file export and include an artifact-level
privacy inventory for response, covariate, and case-EAP files.
fit_mfrm()
-> fit summary -> required Wright map -> focused diagnostics
-> mfrm_report() or
export_mfrm_results().summary(mfrm_results(...), view = "brief") and
summary(mfrm_report(...), view = "reader") provide stable,
concise views over the corresponding structured objects.export_mfrm_results(preset = "starter") writes a
reader-first result folder with an index, required Wright-map image,
selected tables, report files, replay code, and a reproducibility
manifest.show_ci = TRUE, while fitted coordinates
remain unchanged.renderer = "facets" adds an opt-in FACETS Table 6-style
visual grammar: a shared logit ruler, person-frequency asterisks, signed
facet columns, all fitted facet levels, horizontal score-transition
lines, and optional rubric labels. The renderer reproduces a display
convention, not FACETS estimation or numerical output.top_n display remains compact; the
FACETS-style data retain every fitted location.plot(..., type = "fit_pathway") adds a separate
fit-oriented display with Infit or Outfit on the x-axis and measure
logits on the y-axis. Screening bands, measure intervals, and optional
ZSTD companions are explicit.type = "pathway" is unchanged.facets_term_crosswalk() and
facets_visual_contract() document the correspondence
between FACETS terminology and mfrmr outputs while keeping visual
compatibility separate from numerical equivalence.plot_data(), plot_data_components(), and
as_ggplot() make plot coordinates, annotations, reference
lines, and guidance available for custom R graphics.preset = "monochrome"
for print-friendly figures.export_mfrm_bundle(..., include = "html") provides a
fit-level HTML/CSV/replay bundle without first creating an
mfrm_results object.build_model_choice_review() and
build_summary_table_bundle(), with explicit guidance for
equal-weighting RSM/PCM models, bounded GPCM sensitivity analyses, and
latent-regression reporting.mfrm_results() adds a comprehensive first-screen object
for an existing fit, a run_mfrm_facets() result, or a
long-format data frame. It gathers diagnostics, available tables, plot
routes, status information, next actions, and reproducible code without
replacing the lower-level helpers.mfrm_results(include = ...) supports purpose presets
for publication, FACETS migration, validation, bias, local misfit,
linking, network review, and bounded GPCM review.mfrm_report() converts an mfrm_results
object into a navigable reporting plan. Its first screen, report index,
template index, evidence boundaries, cautious wording, and next actions
keep detailed tables available without turning diagnostics into
pass/fail decisions.export_mfrm_results() writes selected result tables,
report files, draw-free plot data, images, replay code, RDS output, and
a written-files manifest. export_mfrm_bundle() remains the
broader fit-centered archive.launch_mfrmr_viewer() provides an optional Shiny reader
over an existing mfrm_results object. It displays stored
results and does not refit the model or change diagnostics.mfrmr_output_guide("public") maps the shortest fit,
results, report, viewer, export, and specialist routes. Additional
guides cover FACETS, ConQuest, binary data, simulation, linking,
response time, and R-first visualization.method = "JML" and aligned settings.precision_review_report(),
fit_measures_table(), and facets_fit_review()
expose the fit, ZSTD, df, separation, and uncertainty bases needed
before drafting technical conclusions.reading_order,
condition_review, and fit/separation operating
characteristics. Bounded-GPCM slope_regime labels and
extended sensitivity evidence remain separate from recovery metrics,
convergence, and uncertainty availability; they are not automatic
adequacy decisions.*_audit* helper names,
compatibility classes, and duplicate output fields were removed in favor
of the canonical *_review* names. Stable accessors include
anchor_review() and precision_review().facets_positioning_guide(),
facets_feature_coverage(), and
facets_output_contract_review() describe supported
FACETS-style tables, migration routes, and known differences. mfrmr
estimates remain package-native unless external FACETS output is
supplied for comparison.mfrmr_output_guide("facets"),
mfrmr_output_guide("conquest"), and
mfrmr_output_guide("r") provide focused entry points for
users moving from FACETS or ConQuest and for users who want reusable R
plot data.write_mfrm_residual_file() and
write_mfrm_subset_file() add standalone residual and
connected-subset files for external review.compare_mfrm()
records the BIC sample-size basis, including weighted fits, and
withholds unsupported likelihood-ratio tests with an explicit
reason.fair_average_table(fair_se = TRUE) adds structural
delta-method uncertainty where supported. estimate_bias()
uses slope-aware information and can report conditional
profile-likelihood screening quantities.diagnose_mfrm(fit_df_method = "engine" | "facets" | "both")
exposes the package and FACETS-style df/ZSTD conventions separately.
facets_fit_review() and
read_facets_fit_table() support row-aligned comparison with
existing FACETS tables without treating convention differences as
estimation errors.compute_person_fit_indices() computes polytomous
lz from observed category probabilities. Snijders-corrected
lz_star is reported for compatible JML/fixed-effect person
estimates and remains unavailable for MML/EAP scores. The incorrectly
named ECI4 output was removed; use OutfitZSTD
for the corresponding standardized chi-square quantity.fit_measures_table() adds FACETS-style element fit
tables, configurable threshold profiles, measure intervals,
df-sensitivity summaries, and draw-free fit plots.data_quality_report() reports row retention,
score-support gaps, zero/sparse category use by facet level, restricted
response patterns, quality flags, original-to-internal score mapping,
and dashboard plot data.analyze_residual_pca(parallel = TRUE) adds
residual-permutation parallel analysis and dedicated plots. It remains
exploratory dimensionality evidence.category_curves_report() adds category probabilities,
cumulative probabilities, total information, category-specific
information, boundary summaries, and overview/focused plots.plot_data() and plot_data_components()
expose long-form data, annotations, styles, and settings from supported
draw = FALSE plots; monochrome and interval guides support
print-oriented reporting.mfrm_d_study() extends observed-score generalizability
output to planned rater/facet-count comparisons. Its residual-scaling
assumptions are reported explicitly; it is not a substitute for an
unidentified interaction decomposition.evaluate_mfrm_recovery() and
assess_mfrm_recovery() report parameter recovery,
convergence, coverage, Monte Carlo precision, uncertainty availability,
score support, and user-specified practical thresholds in separate
summaries and plots.build_model_choice_review() combines fitted-model
comparisons, model-role guidance, downstream support, cautious wording,
and optional weighting review for RSM, PCM, and bounded GPCM
candidates.build_summary_table_bundle() and
export_summary_appendix() accept a broader set of fit,
recovery, person-fit, precision, and comparison objects for report and
appendix handoff.gpcm_capability_matrix() is the authoritative support
map. Supported, caveated, and unavailable routes include a recommended
alternative and the evidence needed for broader use.mfrmr_gpcm_scope_error conditions identify
the unsupported area and recommended route instead of returning a
partial result.quad_points = 31,
diagnostic_mode = "both", plot(fit) showing
the Wright map, and keep_original = FALSE.options(mfrmr.use_cpp11_backend = FALSE) selects the
pure-R reference path. Unsupported kernels fall back automatically.plot(fit)
output. The former overview remains available with
type = "bundle".These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.