CDL {NPCD} | R Documentation |
Log-likelihood for cognitive diagnostic models
Description
This function returns the log-likelihood of a particular examinee's responses to a set of cognitive diagnostic items. Currently supported cognitive diagnostic models include the DINA model, DINO model, NIDA model, G-NIDA model, and R-RUM model. This function is called by the AlphaMLE
function and the JMLE
function in the package.
Usage
CDL(Y, Q, par, alpha, model = c("DINA", "DINO", "NIDA", "GNIDA", "RRUM"),
undefined.flag)
Arguments
Y |
A vector of binary examinee responses. 1=correct, 0=incorrect. |
Q |
The Q-matrix of the test. Rows represent items and columns represent attributes. 1=attribute required by the item, 0=attribute not required by the item. |
par |
A list of parameters.
DINA & DINO — |
alpha |
A vector of examinee ability profile. 1=examinee masters the attribute, 0=examinee does not master the attribute. |
model |
Currently supports five models: |
undefined.flag |
A binary vector indicating whether the parameters of each item are undefined. 1=undefined, 0=defined. |
Value
loglike |
The log likelihood function value for the given data. |
See Also
Examples
# Generate item and examinee profiles
nitem <- 4
Q <- rbind(c(1, 0, 0), c(0, 1, 0), c(0, 0, 1), c(1, 1, 1))
alpha <- c(1, 0, 0)
# Generate DINA model-based response data
slip <- rep(0.1, nitem)
guess <- rep(0.1, nitem)
my.par <- list(slip=slip, guess=guess)
data <- NA
eta <- NA
for (i in 1:nitem) {
eta[i] <- prod(alpha ^ Q[i, ])
P <- (1 - slip[i]) ^ eta[i] * guess[i] ^ (1 - eta[i])
u <- runif(1)
data[i] <- as.numeric(u < P)
}
# Using the function to compute the log-likelihood of the given data
CDL(data, Q, my.par, alpha, model="DINA", undefined.flag=rep(0, nitem))