Nothing
## File Name: rasch_mml2_calcprob_missing1.R
## File Version: 1.092
#**** calculation of probabilities in the missing data IRT model
rasch_mml2_calcprob_missing1 <- function( theta.k, b, beta, delta.miss, pjk,
fixed.a=NULL, return_nonresponse_probs=FALSE, irtmodel="missing1")
{
I <- length(b)
if (is.null(fixed.a)){
fixed.a <- rep(1,I)
}
TP <- nrow(theta.k)
thetaM1 <- sirt_matrix2(theta.k[,1], nrow=I)
thetaM2 <- sirt_matrix2(theta.k[,2], nrow=I)
ab <- fixed.a*b
M1 <- stats::plogis(fixed.a*thetaM1-ab) # probability for correct item response
if (irtmodel=="missing1"){
# probability of a response for incorrect item responses
M2a <- stats::plogis(thetaM2-beta)
# probability of a response for correct item responses
M2b <- stats::plogis(thetaM2-beta-delta.miss)
} else {
M2a <- stats::plogis(thetaM2-beta+delta.miss)
M2b <- stats::plogis(thetaM2-beta)
}
pjk[,1,] <- 1 - M1
pjk[,2,] <- M1
# compute joint probability (R,Y)
pjk[,1,] <- M2a*pjk[,1,]
pjk[,2,] <- M2b*pjk[,2,]
# P(R=0)=P(R=0|Y=0)P(Y=0)+P(R=0|Y=1)P(Y=1)
m3 <- pjk[,3,] <- (1-M2a)*(1-M1) + (1-M2b)*M1
if (return_nonresponse_probs){
pjk[,1,] <- (1-M2a)*(1-M1) / m3
pjk[,2,] <- (1-M2b)*M1 / m3
pjk <- pjk[,1:2,]
}
return(pjk)
}
.calcprob.missing1 <- rasch_mml2_calcprob_missing1
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.