#############################################################################
# EXAMPLE 1: Two-dimensional CFA data.Students
#############################################################################
library(lavaan)
library(CDM)
data(data.Students, package="CDM")
dat <- data.Students
dat2 <- dat[ , c(paste0("mj",1:4), paste0("sc",1:4)) ]
# lavaan model with DO operator
lavmodel <- "
DO(1,4,1)
mj =~ mj%
sc =~ sc%
DOEND
mj ~~ sc
mj ~~ 1*mj
sc ~~ 1*sc
"
lavmodel <- lavaanify.IRT( lavmodel , data=dat2 )$lavaan.syntax
cat(lavmodel)
mod4 <- lavaan::cfa( lavmodel , data=dat2 , std.lv=TRUE )
summary(mod4, standardized=TRUE , rsquare=TRUE )
# extract item parameters
res4 <- cfa.extract.itempars( mod4 )
# create theta grid
theta0 <- seq( -6 , 6 , len=15)
theta <- expand.grid( theta0 , theta0 )
L <- res4$L
nu <- res4$nu
psi <- res4$psi
data <- dat2
# evaluate likelihood using item parameters
like2 <- IRTLikelihood.cfa( data=dat2 , theta=theta, L=L , nu=nu , psi=psi )
# The likelihood can also be obtained by direct evaluation
# of the fitted cfa object "mod4"
like4 <- IRTLikelihood.cfa( data=dat2 , cfaobj=mod4 )
attr( like4 , "theta")
# the theta grid is automatically created if theta is not
# supplied as an argument
Run the code above in your browser using DataLab