Anchor methods for the detection of uniform DIF in the Rasch model
The anchortest
function provides a Wald test (see,
e.g., Glas, Verhelst, 1995) for the detection of uniform differential
item functioning (DIF) in the Rasch model between two pre-specified
groups. A variety of anchor methods is available to build a common
scale necessary for the comparison of the item parameters in the Rasch
model.
anchortest(object, ...) ## Default S3 method: anchortest(object, object2, class = c("constant", "forward", "all-other", "fixed"), select = NULL, test = TRUE, adjust = "none", length = NULL, range = c(0.1, 0.8), ...) ## S3 method for class 'formula' anchortest(formula, data = NULL, subset = NULL, na.action = NULL, weights = NULL, model = raschmodel, ...)
object, object2 |
Fitted model objects of class “raschmodel”
estimated via conditional maximum likelihood using |
... |
further arguments passed over to an internal call
of |
class |
character. Available anchor classes are the
|
select |
character or numeric. Several anchor selection strategies are
available: |
test |
logical. Should the Wald test be returned for the intended anchor method as final DIF test? |
adjust |
character. Should the final DIF test be adjusted for
multiple testing? For the type of adjustment,
see |
length |
integer. It pre-defines a maximum anchor length.
Per default, the |
range |
numeric vector of length 2. The first element is
the percentage of first anchor candidates to be excluded for
consideration when the |
formula |
formula of type |
data |
a data frame containing the variables of the specified
|
subset |
logical expression indicating elements or rows to keep: missing values are taken as false. |
na.action |
a function which indicates what should happen when the data
contain missing values ( |
weights |
an optional vector of weights (interpreted as case weights). |
model |
an IRT model fitting function with a suitable |
To conduct the Wald test (see, e.g., Glas, Verhelst, 1995) for uniform DIF in the Rasch model, the user needs to specify an anchor method. The anchor methods can be divided in an anchor class that determines characteristics of the anchor method and an anchor selection that determines the ranking order of candidate anchor items.
Explicit anchor selection strategies are used in the constant
anchor class and in the iterative forward
anchor class, for a
detailed description see anchor
. Since k-1
parameters are free in the estimation, only k-1 estimated
standard errors result. Thus, the first anchor item obtains no DIF test
result and we report k-1 test results. This decision is
applied only to those methods that rely on an explicit anchor
selection strategy.
In the constant
anchor class, the anchor length is pre-defined
by the user within the argument length
. The default is four
anchor items. The iterative forward
class starts with a single
anchor item and includes items in the anchor as long as the anchor
length is shorter than a certain percentage of the number of items that
do not display statistically significant DIF. The default proportion is
set to 0.8 in the argument range
. Alternatively, the user is
allowed to set a maximum number of anchor items using the argument
length
. Both anchor classes require an explicit anchor selection
strategy as opposed to the all-other
anchor class.
The all-other
anchor class is here not considered as explicit
anchor selection and, thus, only included in the anchortest
function. For the all-other
anchor class, the strategy is set to
"none"
, since all items except for the item currently studied
for DIF are used as anchor. Thus, no explicit anchor selection strategy
is required and we report k test results. Note that the all-other
anchor class requires strong prior knowledge that DIF is balanced.
See Kopf et al. (2015ab) for a detailed introduction. For convenience
a trivial "fixed"
anchor class is provided where the select
ed
anchor is given directly (e.g., as chosen by a practitioner or by some
other anchor selection method).
An object of class anchor
, i.e. a list including
anchor_items |
the anchor items for DIF analysis. |
ranking_order |
a ranking order of candidate anchor items. |
criteria |
the criterion values obtained by the respective anchor selection. |
anchored_item_parameters |
the anchored item parameters using the anchor items. |
anchored_covariances |
the anchored covariance matrices using the anchor items. |
final_tests |
the final Wald test for uniform DIF detection if intended. |
Glas CAW, Verhelst ND (1995). “Testing the Rasch Model.” In Fischer GH, Molenaar IW (eds.), Rasch Models: Foundations, Recent Developments, and Applications, chapter 5. Springer-Verlag, New York.
Kopf J, Zeileis A, Strobl C (2015a). A Framework for Anchor Methods and an Iterative Forward Approach for DIF Detection. Applied Psychological Measurement, 39(2), 83–103. doi: 10.1177/0146621614544195
Kopf J, Zeileis A, Strobl C (2015b). Anchor Selection Strategies for DIF Analysis: Review, Assessment, and New Approaches. Educational and Psychological Measurement, 75(1), 22–56. doi: 10.1177/0013164414529792
Wang WC (2004). Effects of Anchor Item Methods on the Detection of Differential Item Functioning within the Family of Rasch Models. Journal of Experimental Education, 72(3), 221–261.
Woods C (2009). Empirical Selection of Anchors for Tests of Differential Item Functioning. Applied Psychological Measurement, 33(1), 42–57.
if(requireNamespace("multcomp")) { o <- options(digits = 4) ## Verbal aggression data data("VerbalAggression", package = "psychotools") ## Rasch model for the self-to-blame situations; gender DIF test raschmodels <- with(VerbalAggression, lapply(levels(gender), function(i) raschmodel(resp2[gender == i, 1:12]))) ## four anchor items from constant anchor class using MPT-selection const1 <- anchortest(object = raschmodels[[1]], object2 = raschmodels[[2]], class = "constant", select = "MPT", length = 4) const1 summary(const1) ## iterative forward anchor class using MTT-selection set.seed(1) forw1 <- anchortest(object = raschmodels[[1]], object2 = raschmodels[[2]], class = "forward", select = "MTT", test = TRUE, adjust = "none", range = c(0.05,1)) forw1 ## the same using the formula interface set.seed(1) forw2 <- anchortest(resp2[, 1:12] ~ gender, data = VerbalAggression, class = "forward", select = "MTT", test = TRUE, adjust = "none", range = c(0.05, 1)) ## compare both results all.equal(forw1, forw2, check.attributes = FALSE) ## DIF test with fixed given anchor (arbitrarily selected to be items 1 and 2) anchortest(object = raschmodels[[1]], object2 = raschmodels[[2]], select = 1:2) options(digits = o$digits) }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.