#############################################################################
# EXAMPLE 1: Dataset Mathematics
#############################################################################
data(data.math)
dat <- ( data.math$data )[ , -c(1,2) ] # select Mathematics items
#****
# Model 1: Functional unidimensional model based on original data
#++ (1) estimate model with 3 factors
mod1 <- f1d.irt( dat =dat , nfactors=3)
#++ (2) plot results
par(mfrow=c(1,2))
# Intercepts
plot( mod1$item$di0 , mod1$item$di.ast , pch=16 , main="Item Intercepts" ,
xlab= expression( paste( d[i] , "(Unidimensional Model)" )) ,
ylab= expression( paste( d[i] , "(Functional Unidimensional Model)" )))
abline( lm(mod1$item$di.ast ~ mod1$item$di0) , col=2 , lty=2 )
abline( rlm(mod1$item$di.ast ~ mod1$item$di0) , col=3 , lty=3 )
# Discriminations
plot( mod1$item$ai0 , mod1$item$ai.ast , pch=16 , main="Item Discriminations" ,
xlab= expression( paste( a[i] , "(Unidimensional Model)" )) ,
ylab= expression( paste( a[i] , "(Functional Unidimensional Model)" )))
abline( lm(mod1$item$ai.ast ~ mod1$item$ai0) , col=2 , lty=2 )
abline( rlm(mod1$item$ai.ast ~ mod1$item$ai0) , col=3 , lty=3 )
par(mfrow=c(1,1))
#++ (3) estimate bifactor model and Green-Yang reliability
gy1 <- greenyang.reliability( mod1$tetra , nfactors = 3 )
#****
# Model 2: Functional unidimensional model based on estimated multidimensional
# item response model
#++ (1) estimate 2-dimensional exploratory factor analysis with 'smirt'
I <- ncol(dat)
Q <- matrix( 1, I,2 )
Q[1,2] <- 0
variance.fixed <- cbind( 1,2,0 )
mod2a <- smirt( dat , Qmatrix=Q , irtmodel="comp" ,
est.a="2PL" , variance.fixed=variance.fixed , maxiter=50)
#++ (2) input estimated discriminations and intercepts for
# functional unidimensional model
mod2b <- f1d.irt( A = mod2a$a , intercept = mod2a$b )
Run the code above in your browser using DataLab