performs iterative hybrid ordinal logistic regression/IRT DIF
lordif(resp.data, group, selection = NULL, criterion = c("Chisqr", "R2", "Beta"),
pseudo.R2 = c("McFadden", "Nagelkerke", "CoxSnell"), alpha = 0.01, beta.change = 0.1,
R2.change = 0.02, maxIter = 10, minCell = 5, minTheta = -4, maxTheta = 4, inc = 0.1,
control = list(), model = "GRM", anchor = NULL, MonteCarlo = FALSE, nr = 100,
weights = NULL, normwt = TRUE)
Returns an object (list) of class "lordif" with the following components:
calling expression
options used for the run
all or a subset of items analyzed
matrix containing output statistics
logical vector of final flags indicating whether each item is displaying DIF or not
data frame containing recoded item responses
vector of group designation values
scalar for the number of groups
vector of the number of response categories for each item after collapsing/recoding
vector of theta estimates based on the overall (non-group-specific) item parameters
vector of theta estimates based on the DIF-free and group-specific item parameters
scalar for the number of iterations
data frame of the overall (non-group-specific) item parameter estimates
data frame of the group-specific item parameter estimates
matrix containing output statistics (the same components as stats above but based on raw scores)
vector containing mean raw scores
logical vector of final DIF flags based on raw scores
place-holder for DFIT analysis output
vector of items used as anchors
place-holder for Monte Carlo analysis output
data frame or matrix containing item responses
a vector of group designations
a vector specifying a subset of items to be analyzed or NULL for all items
criterion for flagging (i.e., "Chisqr", "R2", or "Beta")
pseudo R-squared measure (i.e., "McFadden", "Nagelkerke", or "CoxSnell")
significance level for Chi-squared criterion
proportionate change for Beta criterion
R-squared change for pseudo R-squared criterion
maximum number of iterations for purification
minimum cell frequency to avoid collapsing
minimum for theta grid
maximum for theta grid
increment for theta grid
a list of control variables (refer to the mirt::mirt()
function in the mirt package)
IRT model of choice, either "GRM" or "GPCM" (default: "GRM")
a vector specifying items to be used as anchors or NULL to determine anchors through purification
TRUE to trigger Monte Carlo simulations to determine empirical thresholds
number of replications for Monte Carlo simulations
an optional vector (same length as nobs) of fractional case weights (refer to the rms::lrm()
function in the rms package which currently generates warning messages)
set to TRUE to scale weights so they sum to nobs
Seung W. Choi <choi.phd@gmail.com>
Performs an ordinal (common odds-ratio) logistic regression differential item functioning (DIF) analysis using IRT theta estimates as the conditioning variable. The graded response model (GRM) or the generalized partial credit model (GPCM) is used for IRT trait estimation. Items flagged for DIF are treated as unique items and group-specific item parameters are obtained. Non-DIF items serve as anchor items to the initial single-group calibration. The procedure runs iteratively until the same set of items is flagged over two consecutive iterations, unless anchor items are specified.
Choi, S. W., Gibbons, L. E., Crane, P. K. (2011). lordif: An R Package for Detecting Differential Item Functioning Using Iterative Hybrid Ordinal Logistic Regression/Item Response Theory and Monte Carlo Simulations. Journal of Statistical Software, 39(8), 1-30. URL http://www.jstatsoft.org/v39/i08/.
Crane, P. K., Gibbons, L. E., Jolley, L., and van Belle, G. (2006). Differential item functioning analysis with ordinal logistic regression techniques: DIF detect and difwithpar. Medical Care, 44(11 Suppl 3), S115-S123.
rundif
if (FALSE) data(Anxiety)
if (FALSE) resp.data <- Anxiety[paste("R",1:29,sep="")]
if (FALSE) age <- Anxiety$age
if (FALSE) age.DIF <- lordif(resp.data,age,model="GPCM",anchor=c(1:5,7,8,10,12:17,19:23,25:29))
if (FALSE) print(age.DIF)
Run the code above in your browser using DataLab