IRTLikelihood.cfa.Rd
This function computes the individual likelihood evaluated
at a theta
grid for confirmatory factor analysis
under the normality assumption of residuals. Either
the item parameters (item loadings L
, item
intercepts nu
and residual covariances psi
)
or a fitted cfa
object from the lavaan
package can be provided. The individual likelihood
can be used for drawing plausible values.
IRTLikelihood.cfa(data, cfaobj=NULL, theta=NULL, L=NULL, nu=NULL,
psi=NULL, snodes=NULL, snodes.adj=2, version=1)
Dataset with item responses
Fitted lavaan::cfa
(lavaan) object
Optional matrix containing the theta
values
used for evaluating the individual likelihood
Matrix of item loadings (if cfaobj
is not provided)
Vector of item intercepts (if cfaobj
is not provided)
Matrix with residual covariances
(if cfaobj
is not provided)
Number of theta
values used for the approximation
of the distribution of latent variables.
Adjustment factor for quasi monte carlo nodes for more than two latent variables.
Function version. version=1
is based on a
Rcpp implementation while version=0
is
a pure R implementation.
Individual likelihood evaluated at theta
if (FALSE) {
#############################################################################
# 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 <- TAM::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 <- TAM::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 <- TAM::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 <- TAM::IRTLikelihood.cfa( data=dat2, cfaobj=mod4 )
attr( like4, "theta")
# the theta grid is automatically created if theta is not
# supplied as an argument
}