Learn R Programming

lordif (version 0.4.2)

lordif-package: Logistic Ordinal Regression Differential Item Functioning using IRT

Description

Analysis of Differential Item Functioning (DIF) for dichotomous and polytomous items, using an iterative hybrid of (ordinal) logistic regression and item response theory (IRT).

Arguments

Author

Seung W. Choi, with contributions from Laura E. Gibbons and Paul K. Crane

Maintainer: Seung W. Choi <choi.phd@gmail.com>

Details

Package:lordif
Type:Package
Version:0.3-3
Date:2016-3-3
License:GPL (>=2)
LazyLoad:yes

Ordinal logistic regression (OLR) provides a flexible framework for detecting various types of DIF. Previous efforts extended the framework by substituting the matching variable based on sum scores with IRT based trait scores and by employing an iterative process of purifying the matching variable with the use of group-specific item parameters (Crane et. al., 2006). This package represents an effort to integrate both statistical and IRT procedures into a single program. A Monte Carlo simulation approach was incorporated to derive empirical threshold values for various DIF statistics and effect size measures.

References

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., & 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.

See Also

mirt::mirt(), rms::lrm()

Examples

Run this code
##load PROMIS Anxiety sample data (n=766)
if (FALSE) data(Anxiety)
##age : 0=younger than 65 or 1=65 or older
##gender: 0=Male or 1=Female
##education: 0=some college or higher 1=high school or lower
##run age-related DIF on all 29 items (takes about a minute)
if (FALSE) age.dif <- lordif(Anxiety[paste("R",1:29,sep="")], Anxiety$age) 
##with sample weights - produces the same results as above, i.e., with equal weights
if (FALSE) age.dif <- lordif(Anxiety[paste("R",1:29,sep="")], Anxiety$age, weights=rep(1/766,766)) 
##print output
if (FALSE) print(age.dif)
##print extended output
if (FALSE) summary(age.dif)
##generate plots for DIF items (reference group: <65)
if (FALSE) plot(age.dif,labels=c("Younger","Older"))
##run Monte Carlo simulations for threshold values
##this may take several minutes
if (FALSE) age.dif.MC<-montecarlo(age.dif,alpha=0.05,nr=100)
##print output
if (FALSE) print(age.dif.MC)
##print extended output
if (FALSE) summary(age.dif.MC)
##generate plots for Monte Carlo threshold values
if (FALSE) plot(age.dif.MC)
##run DFIT analysis
if (FALSE) age.dif.DFIT<-DFIT(age.dif)

Run the code above in your browser using DataLab