
Review a ConQuest comparison within the documented mfrmr overlap scope
Source: R/api-export-bundles.R
review_conquest_overlap.RdReview a ConQuest comparison within the documented mfrmr overlap scope
Usage
review_conquest_overlap(
bundle,
conquest_population = NULL,
conquest_item_estimates = NULL,
conquest_case_eap = NULL,
conquest_population_term = "auto",
conquest_population_estimate = "auto",
conquest_item_id = "auto",
conquest_item_estimate = "auto",
item_id_source = c("auto", "response_var", "level"),
conquest_case_person = "auto",
conquest_case_estimate = "auto",
conquest_location_shift = NULL
)Arguments
- bundle
Output from
build_conquest_overlap_bundle().- conquest_population
Normalized ConQuest population-parameter table as a data.frame, or output from
normalize_conquest_overlap_exports(),normalize_conquest_overlap_files(), ornormalize_conquest_overlap_tables().- conquest_item_estimates
Normalized ConQuest item-estimate table as a data.frame. Leave
NULLwhenconquest_populationis an object from one of the ConQuest normalization helpers.- conquest_case_eap
Normalized ConQuest case-level EAP table as a data.frame. Leave
NULLwhenconquest_populationis an object from one of the ConQuest normalization helpers.- conquest_population_term
Column in
conquest_populationthat stores parameter names."auto"tries conservative aliases such asParameterandTerm.- conquest_population_estimate
Column in
conquest_populationthat stores parameter estimates."auto"tries aliases such asEstimateandEst.- conquest_item_id
Column in
conquest_item_estimatesthat stores the item identifier. This may be the exported response variable (for exampleI001) or the original item/facet level."auto"tries aliases such asResponseVar,ItemID,Item, andLabel.- conquest_item_estimate
Column in
conquest_item_estimatesthat stores the item estimate."auto"triesEstimateandEst. Other columns must be specified explicitly and converted to difficulty logits before review.- item_id_source
How
conquest_item_idshould be matched."auto"chooses the larger overlap between exported response variables and original item levels, with ties resolved toward exported response variables.- conquest_case_person
Column in
conquest_case_eapthat stores person IDs."auto"tries conservative aliases such asPerson,PID, andSequence ID.- conquest_case_estimate
Column in
conquest_case_eapthat stores case EAP estimates."auto"tries conservative aliases such asEstimate,EAP_1, andEAP.- conquest_location_shift
Known additive location offset, ConQuest minus mfrmr. Use
0only after confirming a common origin.NULLuses zero when the supplied generated report confirms the common ITEMS constraint; otherwise aligned EAP/intercept comparisons are unavailable. This argument does not change scale units or reverse the item sign.
Details
This helper compares normalized ConQuest output tables against the exact-
overlap bundle produced by build_conquest_overlap_bundle(). It is
intentionally conservative:
it does not parse raw ConQuest text output automatically;
its primary route expects output from
normalize_conquest_overlap_exports(), which reads the four native comparison CSV files requested by the generated command; the additional matrixout-history CSV is retained for a separate objective/free-dimension verification; custom extracted tables may usenormalize_conquest_overlap_files()ornormalize_conquest_overlap_tables();and it reports numerical differences and missing elements without claiming that any fixed tolerance implies software equivalence.
This is the package's external-table review path. It is distinct from
reference_case_benchmark(cases = "synthetic_conquest_overlap_dry_run"),
which only round-trips package-native tables through the same normalization
and review contract without executing ConQuest.
The intended workflow is:
export a bundle for the documented comparison scope with
build_conquest_overlap_bundle();run the narrow matching case in ConQuest;
normalize the four comparison CSV files with
normalize_conquest_overlap_exports(), supplying the generated review text asreport_filefor stopping/model metadata;pass those tables here to inspect direct differences, centered item agreement, and case-level EAP agreement.
Output
The returned object has class mfrm_conquest_overlap_review and includes:
overall: one-row comparison summary with missing/duplicate/non-numeric attention-item counts and worst-row labelspopulation_comparison: parameter-by-parameter comparison tableitem_comparison: centered item-estimate comparison tablecase_comparison: case-level EAP comparison tableattention_items: missing, malformed, or unmatched elementssettings: review settingsnotes: interpretation notes
Interpretation
Read
summary(review)$review_scopefirst to confirm that the result is a supplied-table review, not raw ConQuest text parsing or a software- equivalence claim.Population slopes and
sigma2are intended for direct comparison.Both item tables are centered using the same matched finite items.
MfrmrCenteredis this comparison coordinate;CenteredEstimateretains the native bundle's original full-set coordinate.ItemCenteringRowsrecords the reference-set size. At least two items are needed; otherwise centered differences and summary metrics are unavailable. Missing items remain flagged, and partial-set agreement does not imply full-set agreement. Recompute older reviews from the saved bundle and external tables to apply this common reference set; printing an old review does not change its values.Case estimates are posterior EAP summaries under the fitted population model.
Differenceretains the raw external-minus-native value;AlignedDifferencesubtracts the declared location shift.CaseMaeandCaseMaxAbsDifferenceuse aligned differences and are unavailable when the origin is unknown.CaseRawMaeandCaseRawMaxAbsDifferenceremain descriptive. Do not infer a common origin from partial centered items.Population summary errors cover slopes and variance; the intercept has separate
InterceptComparedandInterceptAlignedDifferencefields.ExternalEstimationStatusis unknown without a supplied report.criterion_metdoes not certify precision;ExternalPrecisionStatusremainsnot_assessed. Failed stopping and surplus external IDs are attention items. Recreate old reviews to apply these rules.The
overalltable reports both mean and maximum absolute differences for compared population, centered item, and case rows. ThePopulationMaxAbsParameter,ItemCenteredMaxAbsItem, andCaseMaxAbsPersoncolumns identify the row where each maximum absolute difference occurs.Missing or non-numeric rows in
attention_itemsindicate that the external tables do not align cleanly with the exported overlap bundle. Non-finite estimates also use the existingNonNumericInConQueststatus and are excluded from comparison metrics.This review does not compare MnSq, ZSTD, threshold crossings or full parameter covariance. Native MML row residuals evaluated at EAP are not ConQuest parameter-fit statistics: those aggregate through the response design and average over posterior distributions. Adjacent step parameters are not ConQuest cumulative-probability (Thurstonian) thresholds. See the ConQuest technical manual.
Examples
if (FALSE) { # \dontrun{
bundle <- build_conquest_overlap_bundle()
normalized <- normalize_conquest_overlap_exports(
bundle,
parameter_file = "conquest_overlap_conquest_parameters.csv",
regression_file = "conquest_overlap_conquest_reg_coefficients.csv",
covariance_file = "conquest_overlap_conquest_covariance.csv",
case_file = "conquest_overlap_conquest_cases_eap.csv",
report_file = "conquest_overlap_conquest_parameters_review.txt"
)
review <- review_conquest_overlap(bundle, normalized)
summary(review)$summary
} # }