A function to estimate item focussed trees for simultaneous selection of items and variables that induce DIF (Differential Item Functioning) in dichotomous or polytomous items. DIF detection can be based on the Rasch Model (dichotomous case), the Logistic Regression Approach (dichotomous case) or the Partial Credit Model (polytomous case). The basic method of item focussed recursive partitioning in Rasch Models is described in Tutz and Berger (2015).
DIFtree(Y, X, model = c("Rasch", "Logistic", "PCM"), type = c("udif",
"dif", "nudif"), alpha = 0.05, nperm = 1000, trace = FALSE,
penalize = FALSE, ...)# S3 method for DIFtree
print(x, ...)
Matrix or Data.frame of binary 0/1 or categorical response (rows correspond to persons, columns correspond to items)
Data.frame of (not scaled) covariates (rows correspond to persons, columns correspond to covariates)
Type of model to be fitted; can be "Rasch", "Logistic" or "PCM".
Type of DIF to be modelled; one out of "udif", "dif" and "nudif".
For "Rasch" and "PCM" only uniform DIF can be modelled and therefore type will be ignored.
Global significance level for the permutation tests
Number of permutations used for the permutation tests
If true, information about the estimation progress is printed
If true, a small ridge penalty is added to ensure existence of model parameters; only for "Rasch".
Further arguments passed to or from other methods
Object of class "DIFtree"
Object of class "DIFtree".
An object of class "DIFtree" is a list containing the following components:
Matrix with detailed information about all executed splits during the estimation process
List of estimated coefficients for items with and without DIF.
Structure of coefficients depends on model and type.
P-values of each permutation test during the estimation process
Maximal value statistics \(T_j\) of the selected variables in each iteration during the estimation process
Critical values of each permutation test during the estimation process
Response matrix used in the estimation process
Model matrix used in the estimation process
Number of persons
Number of items
The methods require 0/1 coded answers on binary items ("Rasch" and "Logistic") or categorical answers on polytomous items ("PCM").
Items with DIF are gradually identified by recursive partitioning.
For "Rasch" one yields a model with linear predictors
$$eta_{pi}=theta_p-tr_i(x_p),$$
where \(theta_p\) correspond to the ability and \(x_p\) correspond to the covariate vector of person p.
For "Logistic" one yields a model with linear predictors
Uniform DIF, type="udif"
$$eta_{pi}=S_p beta_i+tr_i(x_p),$$
where \(S_p\) corresponds to the test score and \(x_p\) corresponds to the covariate vector of person p.
DIF and Non-Uniform DIF, type="dif", "nudif"
$$eta_{pi}=tr_i(x_p)+tr_i(S_p,x_p),$$
where \(S_p\) corresponds to the test score and \(x_p\) corresponds to the covariate vector of person p.
For "PCM" one yields a model with linear predictors
$$eta_{pir}=theta_p-tr_{ir}(x_p),$$
where \(theta_p\) correspond to the ability and \(x_p\) correspond to the covariate vector of person p.
Significance of each split is verified by permutation tests. The result of the permutation tests
can strongly depend on the number of permutations nperm.
In the case of pure terminal nodes estimates of the model do not exist. If penalize=TRUE
a small ridge penalty is added during estimation to ensure existence of all parameters.
Berger, Moritz and Tutz, Gerhard (2016): Detection of Uniform and Non-Uniform Differential Item Functioning by Item Focussed Trees, Journal of Educational and Behavioral Statistics 41(6), 559-592.
Bollmann, Stella, Berger, Moritz & Tutz, Gerhard (2018): Item-Focussed Trees for the Detection of Differential Item Functioning in Partial Credit Models, Educational and Psychological Measurement 78(5), 781-804.
Swaminathan, Hariharan and Rogers, H Jane (1990): Detecting differential item functioning using logistic regression procedures, Journal of Educational Measurements 27(4), 361-370.
Tutz, Gerhard and Berger, Moritz (2016): Item focussed Trees for the Identification of Items in Differential Item Functioning, Psychometrika 81(3), 727-750.
# NOT RUN {
data(data_sim_Rasch)
data(data_sim_PCM)
Y1 <- data_sim_Rasch[,1]
X1 <- data_sim_Rasch[,-1]
Y2 <- data_sim_PCM[,1]
X2 <- data_sim_PCM[,-1]
# }
# NOT RUN {
mod1 <- DIFtree(Y=Y1,X=X1,model="Logistic",type="udif",alpha=0.05,nperm=1000,trace=TRUE)
print(mod1)
mod2 <- DIFtree(Y=Y2,X=X2,model="PCM",alpha=0.05,nperm=100,trace=TRUE)
print(mod2)
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab