| Type: | Package |
| Title: | Detection of Differential Item Functioning (DIF) in Rasch Models by Boosting Techniques |
| Version: | 0.4 |
| Date: | 2025-07-22 |
| Imports: | mboost, penalized, stabs |
| Maintainer: | Gunther Schauberger <gunther.schauberger@tum.de> |
| Description: | Performs detection of Differential Item Functioning using the method DIFboost as proposed by Schauberger and Tutz (2016) <doi:10.1111/bmsp.12060>. |
| License: | GPL-2 |
| LazyLoad: | yes |
| NeedsCompilation: | no |
| Packaged: | 2025-07-22 11:04:02 UTC; ge29weh |
| Author: | Gunther Schauberger [aut, cre] |
| Repository: | CRAN |
| Date/Publication: | 2025-07-22 11:50:15 UTC |
DIFboost
Description
A package to perform DIFboost, a method to detect DIF (Differential Item Functioning) in Rasch Models. It can handle settings with many covariates and also metric covariates simultaneously. The method is described in Tutz and Schauberger (2015). Model/variable selection is performed using stability selection.
Details
The method assumes the DIFmodel from Tutz and Schauberger (2015) where boosting is used for DIF detection. Computation is based on the functions gamboost and stabsel.
Author(s)
Gunther Schauberger
gunther.schauberger@tum
https://www.sg.tum.de/epidemiologie/team/schauberger/
References
Schauberger, Gunther and Tutz, Gerhard (2016): Detection of Differential Item Functioning in Rasch Models by Boosting Techniques, British Journal of Mathematical and Statistical Psychology, 69(1), 80 - 103
See Also
Examples
## Not run:
data(simul.data)
Y <- simul.data[,1:10]
X <- simul.data[,11:13]
m1 <- DIFboost(Y = Y, X = X)
print(m1)
## End(Not run)
Detection of Differential Item Functioning (DIF) in Rasch Models by Boosting Techniques
Description
A function to perform DIFboost, a method to detect DIF (Differential Item Functioning) in Rasch Models. It can handle settings with many covariates and also metric covariates simultaneously. The method is described in Tutz and Schauberger (2015). Model/variable selection is performed using stability selection.
Usage
DIFboost(Y, X, mstop = 400, trace = TRUE, cutoff = 0.9,
B = 500, mc.cores = 1, q = 0.6 * I)
Arguments
Y |
Data frame (one row per person, one column per item) containing response. May only contain 0 or 1. |
X |
Data frame (one row per person, one column per covariate) containing covariates. Has to be standardized. |
mstop |
Number of boosting iterations maximally performed in one iteration of the stability selection. |
trace |
Should the trace of the single boosting steps be printed? |
cutoff |
Cutoff value for stability selection. |
B |
Number of subsamples used for stability selection. |
mc.cores |
Number of cores for parallelized stability selection. For windows machines, parallelization is not possible. |
q |
Maximum number of base learner to be included in the boosting algorithm for one subsample in stability selection. By default set to 60 percent of the total number of items. |
Details
The method assumes the DIFmodel from Tutz and Schauberger (2015) where boosting is used for DIF detection. Computation is based on the functions gamboost and stabsel.
Value
model |
Model from inital gamboost fit |
dif.mat |
Estimates of the item-specific parameter estimates, with zeros for non-DIF items |
coefficients |
coefficient vector with all estimates from refitted model |
theta |
Estimated person abilities |
beta |
Estimated item difficulties |
gamma |
Estimated item-specific parameters |
P |
Number of (valid) persons |
I |
Number of items |
names.y |
Names of the items |
names.x |
Names of the covariates |
design.matrix |
Design matrix for refitted model |
PFER |
upper bound for the per-family error rate. For details see |
lin.pred |
linear predictor from refitted model |
DIF.items |
Which items have been detected to be DIF items? |
ref.item |
Reference item |
phat |
selection probabilities for single base learners in stability selection. For details see |
cutoff |
cutoff value used for stability selection |
Author(s)
Gunther Schauberger
gunther.schauberger@tum
https://www.sg.tum.de/epidemiologie/team/schauberger/
References
Schauberger, Gunther and Tutz, Gerhard (2016): Detection of Differential Item Functioning in Rasch Models by Boosting Techniques, British Journal of Mathematical and Statistical Psychology, 69(1), 80 - 103
See Also
print.DIFboost, gamboost, stabsel
Examples
## Not run:
data(simul.data)
Y <- simul.data[,1:10]
X <- simul.data[,11:13]
m1 <- DIFboost(Y = Y, X = X)
print(m1)
## End(Not run)
Print function for DIFboost
Description
Prints the most important output of a DIFboost object.
Usage
## S3 method for class 'DIFboost'
print(x, ...)
Arguments
x |
DIFboost object, created by |
... |
Further arguments to be passed to the |
Author(s)
Gunther Schauberger
gunther.schauberger@tum
https://www.sg.tum.de/epidemiologie/team/schauberger/
References
Schauberger, Gunther and Tutz, Gerhard (2016): Detection of Differential Item Functioning in Rasch Models by Boosting Techniques, British Journal of Mathematical and Statistical Psychology, 69(1), 80 - 103
See Also
Examples
## Not run:
data(simul.data)
Y <- simul.data[,1:10]
X <- simul.data[,11:13]
m1 <- DIFboost(Y = Y, X = X)
print(m1)
## End(Not run)
Simulated data set
Description
Simulated data set with 100 persons, 10 items and 3 (standardized) covariates. Items 1, 2 and 3 are DIF items.
Usage
data(simul.data)
Format
Item1Item 1, DIF item
Item2Item 2, DIF item
Item3Item 3, DIF item
Item4Item 4, non-DIF item
Item5Item 5, non-DIF item
Item6Item 6, non-DIF item
Item7Item 7, non-DIF item
Item8Item 8, non-DIF item
Item9Item 9, non-DIF item
Item10Item 10, non-DIF item
CovBin1Binary covariate (standardized)
CovBin2Binary covariate (standardized)
CovMetMetric covariate (standardized)
Author(s)
Gunther Schauberger
gunther.schauberger@tum
https://www.sg.tum.de/epidemiologie/team/schauberger/
References
Schauberger, Gunther and Tutz, Gerhard (2016): Detection of Differential Item Functioning in Rasch Models by Boosting Techniques, British Journal of Mathematical and Statistical Psychology, 69(1), 80 - 103
See Also
Examples
## Not run:
data(simul.data)
Y <- simul.data[,1:10]
X <- simul.data[,11:13]
m1 <- DIFboost(Y = Y, X = X)
print(m1)
## End(Not run)