| RMlocdepGammaCutoff | R Documentation |
Uses parametric bootstrap simulation to determine appropriate cutoff values
for partial gamma Local Dependence analysis via
partgam_LD. Under a correctly fitting Rasch model where
items are locally independent, this function generates the expected
distribution of partial gamma values per item pair, providing empirical
critical values.
RMlocdepGammaCutoff(
data,
iterations = 400,
parallel = TRUE,
n_cores = NULL,
verbose = FALSE,
seed = NULL,
cutoff_method = "hdci",
hdci_width = 0.95
)
data |
A data.frame or matrix of item responses. Items must be scored
starting at 0 (non-negative integers). Only complete cases (rows without
any |
iterations |
Integer. Number of simulation iterations (default 400, was 250 before 1.2.0). 400 is the calibrated floor for the Westfall-Young correction (Johansson, 2026) and the count a 95\ converge. Use 1000 to 2000 for a final analysis. |
parallel |
Logical. Use parallel processing via |
n_cores |
Integer or |
verbose |
Logical. Show a progress bar (default |
seed |
Integer or |
cutoff_method |
Character string specifying how cutoff intervals are
computed. Either |
hdci_width |
Numeric. Width of the HDCI when |
For each simulation iteration the function:
Resamples person parameters (thetas) with replacement from the WLE person locations.
Simulates item response data under a Rasch model (dichotomous via
psychotools::rrm() or polytomous via an internal partial credit
simulator).
Computes partial gamma for every item pair in both rest-score
directions and keeps the larger. The coefficients are identical to
those of iarm::partgam_LD(), but are computed by a vectorised
internal, since iarm also derives the asymptotic standard error and
confidence interval that a simulated null does not need and costs
roughly two orders of magnitude more per iteration.
Because the data are simulated under the Rasch model, items are locally independent by construction. The distribution of partial gamma values across iterations provides empirical critical values per item pair. Values from real data that fall outside these bounds suggest local dependence that exceeds what would be expected by chance. Failed iterations (e.g., due to convergence issues or degenerate data) are silently discarded.
The generating model uses CML item thresholds via psychotools::pcmodel()
(a dichotomous item is a 2-category PCM) and WLE person locations,
consistent with the rest of the package; responses are simulated with
psychotools::rrm() (dichotomous) or an internal partial credit score
simulator (polytomous).
Parallel processing is provided by the mirai package (optional). Install
it with install.packages("mirai") to enable parallelisation.
The iarm package must be installed (it is in Suggests, not Imports).
A list with components:
resultsdata.frame with columns iteration, Item1, Item2,
and gamma (one row per item pair per successful iteration). gamma is
the larger of the pair's two rest-score directions, the statistic
RMlocdepGamma() tests. Rows are keyed by the sorted pair order, with
Item1 before Item2 in column order.
pair_cutoffsdata.frame with per-pair cutoff summaries: Item1,
Item2, gamma_low, gamma_high. Bounds are computed using the method
specified by cutoff_method.
actual_iterationsNumber of successful iterations.
sample_nNumber of complete cases used.
sample_n_totalNumber of respondents in the raw input data, before the complete-case filter.
sample_has_naLogical. Whether the raw input data contained any missing values.
sample_summarySummary statistics of estimated person parameters.
item_namesCharacter vector of item names from data.
cutoff_methodThe method used to compute cutoffs ("hdci" or
"quantile").
hdci_widthThe HDCI width used (only meaningful when
cutoff_method = "hdci").
Christensen, K. B., Kreiner, S. & Mesbah, M. (Eds.) (2013). Rasch Models in Health, pp. 133–135. ISTE & Wiley. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1002/9781118574454")}
partgam_LD, RMlocdepGamma,
RMlocdepGammaPlot
if (requireNamespace("iarm", quietly = TRUE) &&
requireNamespace("ggdist", quietly = TRUE)) {
set.seed(42)
sim_data <- as.data.frame(
matrix(sample(0:1, 200 * 10, replace = TRUE), nrow = 200, ncol = 10)
)
colnames(sim_data) <- paste0("Item", 1:10)
# Run 100 iterations sequentially for a quick demo
cutoff_res <- RMlocdepGammaCutoff(sim_data, iterations = 100,
parallel = FALSE, seed = 42)
cutoff_res$pair_cutoffs
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.