Learn R Programming

sirt (version 1.14-0)

modelfit.sirt: Assessing Model Fit and Local Dependence by Comparing Observed and Expected Item Pair Correlations

Description

This function computes several measures of absolute model fit and local dependence indices for dichotomous item responses which are based on comparing observed and expected frequencies of item pairs (Chen, de la Torre & Zhang, 2013; see modelfit.cor for more details).

Usage

modelfit.sirt(object)
modelfit.cor.poly( data , probs , theta.k , f.qk.yi)

Arguments

data
Dataset with polytomous item responses
probs
Item response probabilities at grid theta.k
theta.k
Grid of theta vector
f.qk.yi
Individual posterior

Value

A list with following entries:

References

Chen, W., & Thissen, D. (1997). Local dependence indexes for item pairs using item response theory. Journal of Educational and Behavioral Statistics, 22, 265-289.

DiBello, L. V., Roussos, L. A., & Stout, W. F. (2007) Review of cognitively diagnostic assessment and a summary of psychometric models. In C. R. Rao and S. Sinharay (Eds.), Handbook of Statistics, Vol. 26 (pp. 979--1030). Amsterdam: Elsevier.

Maydeu-Olivares, A. (2013). Goodness-of-fit assessment of item response theory models (with discussion). Measurement: Interdisciplinary Research and Perspectives, 11, 71-137.

Maydeu-Olivares, A., & Joe, H. (2014). Assessing approximate fit in categorical data analysis. Multivariate Behavioral Research, 49, 305-328. McDonald, R. P., & Mok, M. M.-C. (1995). Goodness of fit in item response models. Multivariate Behavioral Research, 30, 23-40. Yen, W. M. (1984). Effects of local item dependence on the fit and equating performance of the three-parameter logistic model. Applied Psychological Measurement, 8, 125-145.

See Also

Supported classes: rasch.mml2, rasch.mirtlc, rasch.pml3 (rasch.pml2), smirt, R2noharm, noharm.sirt, gom.em, TAM::tam.mml, TAM::tam.mml.2pl, TAM::tam.fa, mirt::mirt

For more details on fit statistics of this function see CDM::modelfit.cor.

Examples

Run this code
## Not run: 	
# #############################################################################
# # EXAMPLE 1: Reading data
# #############################################################################
# data(data.read)
# dat <- data.read
# I <- ncol(dat)
# 
# #*** Model 1: Rasch model
# mod1 <- rasch.mml2(dat)
# fmod1 <- modelfit.sirt( mod1 )
# summary(fmod1)
# 
# #*** Model 1b: Rasch model in TAM package
# library(TAM)
# mod1b <- TAM::tam.mml(dat)
# fmod1b <- modelfit.sirt( mod1b )
# summary(fmod1b)
# 
# #*** Model 2: Rasch model with smoothed distribution
# mod2 <- rasch.mml2( dat , distribution.trait="smooth3" )
# fmod2 <- modelfit.sirt( mod2 )
# summary(fmod2 )
# 
# #*** Model 3: 2PL model
# mod3 <- rasch.mml2( dat , distribution.trait="normal" , est.a=1:I )
# fmod3 <- modelfit.sirt( mod3 )
# summary(fmod3 )
# 
# #*** Model 3: 2PL model in TAM package
# mod3b <- TAM::tam.mml.2pl( dat )
# fmod3b <- modelfit.sirt(mod3b)
# summary(fmod3b)
# # model fit in TAM package
# tmod3b <- TAM::tam.modelfit(mod3b)
# summary(tmod3b)
# # model fit in mirt package
# library(mirt)
# mmod3b <- tam2mirt(mod3b)   # convert to mirt object
# mirt::M2(mmod3b$mirt)         # global fit statistic
# mirt::residuals( mmod3b$mirt , type="LD")  # local dependence statistics
# 
# #*** Model 4: 3PL model with equal guessing parameter
# mod4 <- TAM::rasch.mml2( dat, distribution.trait="smooth3", est.a=1:I, est.c=rep(1,I) )
# fmod4 <- modelfit.sirt( mod4 )
# summary(fmod4 )
# 
# #*** Model 5: Latent class model with 2 classes
# mod5 <- rasch.mirtlc( dat , Nclasses=2 )
# fmod5 <- modelfit.sirt( mod5 )
# summary(fmod5 )
# 
# #*** Model 6: Rasch latent class model with 3 classes
# mod6 <- rasch.mirtlc( dat , Nclasses=3 , modeltype="MLC1", mmliter=100)
# fmod6 <- modelfit.sirt( mod6 )
# summary(fmod6 )
# 
# #*** Model 7: PML estimation
# mod7 <- rasch.pml3( dat )
# fmod7 <- modelfit.sirt( mod7 )
# summary(fmod7 )
# 
# #*** Model 8: PML estimation
# #      Modelling error correlations: 
# #          joint residual correlations for each item cluster
# error.corr <- diag(1,ncol(dat))
# itemcluster <- rep( 1:4 ,each=3 )
# for ( ii in 1:3){
#     ind.ii <- which( itemcluster == ii )
#     error.corr[ ind.ii , ind.ii ] <- ii
#         }
# mod8 <- rasch.pml3( dat , error.corr = error.corr )
# fmod8 <- modelfit.sirt( mod8 )
# summary(fmod8 )
# 
# #*** Model 9: 1PL in smirt
# Qmatrix <- matrix( 1 , nrow=I , ncol=1 )
# mod9 <- smirt( dat , Qmatrix=Qmatrix )
# fmod9 <- modelfit.sirt( mod9 )
# summary(fmod9 )
# 
# #*** Model 10: 3-dimensional Rasch model in NOHARM 
# noharm.path <- "c:/NOHARM"
# Q <- matrix( 0 , nrow=12 , ncol=3 )
# Q[ cbind(1:12 , rep(1:3,each=4) ) ] <- 1
# rownames(Q) <- colnames(dat)
# colnames(Q) <- c("A","B","C")
# # covariance matrix
# P.pattern <- matrix( 1 , ncol=3 , nrow=3 )
# P.init <- 0.8+0*P.pattern
# diag(P.init) <- 1
# # loading matrix
# F.pattern <- 0*Q
# F.init <- Q
# # estimate model
# mod10 <- R2noharm( dat = dat , model.type="CFA" , F.pattern = F.pattern , 
#             F.init = F.init , P.pattern = P.pattern , P.init = P.init , 
#             writename = "ex4e" , noharm.path = noharm.path  , dec ="," )
# fmod10 <- modelfit.sirt( mod10 )
# summary(fmod10)
# 
# #*** Model 11: Rasch model in mirt package
# library(mirt)
# mod11 <- mirt::mirt(dat , 1, itemtype="Rasch",verbose=TRUE)
# fmod11 <- modelfit.sirt( mod11 )
# summary(fmod11)
# # model fit in mirt package
# mirt::M2(mod11)
# mirt::residuals(mod11)
# ## End(Not run)

Run the code above in your browser using DataLab