wright_map() sends fitted person and item estimates
to WrightMap. It supports several person distributions and
the item-panel layout introduced in WrightMap 1.5, including the
person-group and item-set structure of EFRM fits.
rasch_explanatory() fits the linear logistic test
model and linear partial credit model from continuous, categorical or
ordinal item- or threshold-level predictors. Formulae may include
selected interactions. explanatory_test() compares the
restrictions with a free calibration using the Kent adjustment;
explanatory_diagnostics() and
relax_explanatory() support fixed item and threshold
departures. Refitted departures propagate to item and person estimates
and are retained through item deletion, DIF splitting, superitem
construction and response-dependence resolution. Keyed option responses
remain available after item deletion, splitting and fixed-departure
refits.
btl_explanatory() applies a fixed explanatory design
to object locations in dichotomous or ordered comparative judgements. It
supports the same model comparison, Holm-adjusted diagnostics and fixed
departures while retaining the nominated ordered-response threshold
structure.
A worked case study on the documentation site uses the verbal aggression data to develop and check an explanatory partial credit model.
explanatory_test() now places the Kent-calibrated
probability in both p and p_kent. The unscaled
composite-likelihood probability is named p_naive so it
cannot be mistaken for the inferential result. The table also reports
calibration R-squared, with an adjusted counterpart whose null
expectation is near zero, against the free threshold or object
calibration.
Pairwise conditional calibrations now use the remaining Newton move as a second convergence check. This prevents numerical false refusals at large sample sizes without changing the estimates.
Holm adjustment for item-fit statistics now excludes items whose
tests are unavailable. Their probabilities remain
NA.
Sparse-unit safeguards now use the sampling units that inform each test. MFRM interaction tests use the least-supported facet level; EFRM unit tests require adequate persons on every group or set link; BTL-EFRM judge bootstraps require adequate effective judges in every panel or link; and frame-invariance tests exclude weak frame calibrations.
BTL-EFRM judge bootstraps now distinguish refit errors from non-convergence and report the underlying worker error when parallel refits fail.
rasch_mfrm() supports several facets and an optional
item-by-facet interaction. Omnibus and cell follow-up tests use the
fitted joint covariance.
rasch_efrm() supports crossed person-group factors
and reports their GLS factorial decomposition. Set-unit linking uses a
finite-grid semiparametric likelihood, with a separate nuisance
distribution for each observed person group. Hybrid standard errors
retain the joint uncertainty of the within-frame calibration and set
link; full person-bootstrap inference remains available. The convergence
flag covers both estimation stages, and non-converged links are excluded
from bootstrap covariance calculations. EFRM data require one response
row per person.
The repeated semiparametric linking calculations in the EFRM bootstrap now use a compiled numerical kernel. Bootstrap replicates can also be distributed over a reproducible, cross-platform worker cluster. The Shiny application runs EFRM fits in a background process, defaults to four workers where the system permits, records the bootstrap seed, reports progress and permits the fit to be cancelled without retaining a partial result.
BTL-EFRM judge bootstraps likewise default to four workers where available. A fixed seed gives the same result for any worker count. The application runs these fits in the background and supports progress reporting and cancellation.
frame_invariance() compares item locations and
discrimination across separately calibrated frames. The conditional
method tests locations and reports discrimination descriptively. The
person-within-frame bootstrap provides inference for both, with one
combined Holm family.
MFRM and EFRM summaries report item estimates separately from the item-by-facet or item-by-frame response cells used in estimation. Coefficient alpha is not reported for the expanded response-cell matrix. EFRM DIF tests pool residual evidence by item and exclude the person factors that define the frames.
btl(), btl_dif() and
btl_efrm() add ordered paired comparisons, judge-clustered
inference, judge-factor DIF, linked object sets and judge panels.
Paired-comparison diagnostics now include equating, transitivity,
residual dimensions, design information and adaptive pair
selection.
Carry-over probabilities are withheld below 30 judges.
btl_equate() uses Welch–Satterthwaite degrees of freedom
when fitted calibrations have a finite number of judge clusters.
Conditional BTL-EFRM unit probabilities are withheld; the application
defaults to the judge bootstrap. BTL-EFRM judge bootstraps use
finite-judge references, whereas its independent-outcome parametric
bootstrap uses normal and chi-square references.
Confirmatory multiplicity defaults are now consistently Holm familywise adjustments across item fit, DIF, equating and the application. BH remains available where false-discovery-rate screening is explicitly requested. BTL DIF uses HC3 covariance for unequal judge workloads and withholds omnibus probabilities below eight judges or eight effective judges in a factor cell.
Item-fit documentation now distinguishes the principal item-trait test from the supplementary class-interval ANOVA and notes the limits of both in short administrations. HC3 was evaluated for item fit and was not adopted.
dif_anova() fits several person factors jointly
using Type II sums of squares. Repeated measurements use the person as
the sampling unit and separate between- and within-person error strata.
Multiplicity adjustment covers the complete family of uniform and
non-uniform DIF tests rather than treating each term as a separate
family; btl_dif() follows the same rule. Uniform
between-person terms now use HC3 covariance. Class-interval interactions
retain the residual-ANOVA reference used for non-uniform DIF.
dif_contrasts() and dif_posthoc()
provide planned and post-hoc logit contrasts, including simple effects
and difference-in-differences for interactions. MFRM follow-ups pool the
fitted facet cells of an underlying item; resolved EFRM follow-ups are
withheld because an ordinary split would discard the frame units. The
residual-mean Tukey table has been removed from
dif_anova(); dif_posthoc() is the supported
follow-up for multilevel terms.
Repeated-measures DIF follow-ups use the full design-cell weights in their person-level tests. Reported resolved estimates and probabilities therefore address the same marginal contrast when nuisance factors are imbalanced.
dif_size() reports resolved pairwise logit
differences. Dichotomous items receive the itemwise ETS A/B/C
classification. Polytomous items report the PCM signed expected-score
area descriptively, without importing an incompatible score-metric
classification.
resolve_dif() splits confirmed DIF items iteratively
while retaining a minimum anchor set. Automatic splitting is restricted
to uniform DIF; non-uniform DIF remains visible for item review. MFRM
residuals can be pooled to their source items, and EFRM factors that do
not define frames can be tested.
btl_dif() retains anchors and fitted dependence
terms in its resolution refit. Resolved pairwise inference is withheld
unless each factor cell has at least eight effective judges; pairwise
degrees of freedom use the two cells’ effective counts, and the pairwise
table reports the raw and effective support for both cells. BTL-EFRM
fits require a frame-specific analysis rather than the equal-unit
resolution model.
dependence_magnitude() uses the joint covariance of
resolved thresholds. Equating tests require independent calibrations and
the covariance of banked locations.spread_test() applies the binomial least-upper-bound
only to superitems formed entirely from dichotomous components. It now
distinguishes a point estimate below the bound from adjusted one-sided
evidence of dependence. Its significance level and multiplicity
adjustment are available in the application. The component structure is
retained through subsequent item splits and removals.drop_items(), resolve_frames(), DIF
splitting and superitem construction refit the active model and update
downstream item and person estimates. Refit specifications retain
anchors, keyed scoring, threshold constraints, factors and frame-linking
controls; a non-converged downstream calibration is not returned as a
completed analysis..rasch projects and reopened.
Reports can be produced as self-contained HTML, Word or PDF documents;
the R code for each displayed result is available in the
application.plot_scree() and plot_btl_scree() label
their component axes at whole components only, instead of overprinting
the default axis.print() preserves the reference distribution used by
saved BTL fits: current and transitional results are labelled
t, while older results without cluster degrees of freedom
retain their original z label.t, in
accordance with their t reference distribution.t.G - 1 degrees of freedom.simulate_rasch() validates secondary-trait correlations
and item sets.item_moments() uses a log-sum-exp calculation for wide
category ranges.btl_efrm() requires each judge to belong to one
panel.NA.NA.btl_efrm(se_method = "judge_bootstrap") resamples
judges within panels and refits both stages.btl_next_pairs() as a ranking
rule is stated in its documentation.NA, and the
total test includes testable items only.btl_dif() uses the judge as the sampling unit and
count-weighted opponent bands.rasch() and btl() warn when estimation has
not converged.rasch() reports unknown id,
factors, and items columns as errors.equate_tests() excludes common items without usable
locations or standard errors from weighted linking and drift
inference.report_html() escapes data-derived labels and
notes.compare_fits() adds composite-likelihood AIC and BIC
based on the Godambe effective parameter count.eRm,
sirt, and psychotools.inst/casestudies/party_blocs_crisis.R
applies btl_efrm() to the Tuebingen 2009 party-preference
data.NA
standard errors with the number of boundary replicates reported.btl_efrm() fits the paired-comparison extension of the
extended frame of reference model, with panel units, object-set units,
and set origins.plot_btl_units() and simulate_btl_efrm()
support display and simulation.btl() adds anchored estimation and a first-position
effect.btl_equate() and plot_btl_equate() provide
common-object linking and drift tests for paired-comparison
calibrations.btl_information(), plot_btl_targeting(),
and btl_next_pairs() provide design information and greedy
next-pair selection.sim_replicate(), sim_recovery(), and
plot_recovery() support repeated simulation and
parameter-recovery summaries.simulate_efrm() gains n_categories for
partial credit items within frames, with planted thresholds recorded in
the truth attribute.simulate_rasch(), simulate_btl(),
simulate_mfrm(), and simulate_efrm() generate
data from the package’s model families and can introduce nominated
departures. Generating parameters are stored in the returned data.plot_btl_judge_map() now displays individual matchups.
judge_pair_surprise() returns the corresponding
residuals.judge_surprise() and plot_btl_judge_map()
compare a judge’s object-level preferences with the consensus object
scale. The display is available from the Shiny Judge fit page.btl_transitivity() reports circular triads and
Kendall’s consistency coefficient for suitable paired-comparison
designs.btl_dimensionality() decomposes the skew-symmetric
residual preference matrix and compares its leading component with a
model-based reference.rmt,
to rasch. Result classes use the rasch_
prefix.btl() adds count-weighted exposure and carry-over
effects, separation handling, and
plot_btl_dependence().btl_dif() carries fitted dependence effects into its
residual analysis and handles aggregated comparison counts.dif_contrasts().plot_pca_biplot() draws the item loadings on the first
two residual principal components on equal axes.residual_correlations() now also returns the
adjusted-Q3 star_matrix and plot_resid_cor()
can draw raw Q3 or adjusted Q3*.dif_anova() is now the single DIF analysis-of-variance
function. One factor is analysed one-way; several factors are fitted
jointly. It supports repeated-measures and mixed designs.resolve_dif() resolves DIF iteratively by item
splitting.First stable release.
rasch() fits dichotomous, partial credit, and rating
scale models by pairwise conditional maximum likelihood, with Warm WLE
person estimates.rasch_mfrm() fits additive and item-by-facet many-facet
models.rasch_efrm() fits the extended frame of reference
model.btl() fits dichotomous and ordered paired-comparison
models.fit_summary_table() and targeting_table()
return the headline statistics; save_outputs() and
report_html() export results.run_app() launches the Shiny interface and shows the R
call corresponding to each analysis.