## File Name: rasch_mml2_estep_missing1.R
## File Version: 1.119
#*** E step missing data IRT model
rasch_mml2_estep_missing1 <- function( dat2, dat2.resp, theta.k, b, beta, delta.miss, I, CC,
TP, group_, pi.k, pjk, weights, fixed.a=fixed.a, est.a=NULL, irtmodel="missing1" )
{
eps <- 1e-16
if (is.null(est.a)){
est.a <- rep(0,I)
}
# a0 <- Sys.time()
# probability correct response
pjk <- rasch_mml2_calcprob_missing1( theta.k=theta.k, b=b, beta=beta,
delta.miss=delta.miss, pjk=pjk, fixed.a=fixed.a, irtmodel=irtmodel )
# cat( " *** calc probs") ; a1 <- Sys.time(); print(a1-a0) ; a0 <- a1
#** calculate likelihood
probs_ <- as.matrix( array( pjk, dim=c(I,CC*TP) ) )
f.yi.qk <- sirt_rcpp_probs_pcm_groups_C( dat=dat2, dat_resp=dat2.resp, group=group_,
probs=probs_, CC=CC, TP=TP )
# cat( " *** calc like") ; a1 <- Sys.time(); print(a1-a0) ; a0 <- a1
#*** calculate expected counts
e1 <- sirt_rcpp_calccounts_pcm_groups_C( dat=dat2, dat_resp=dat2.resp, group=group_,
fyiqk=f.yi.qk, pik=pi.k, CC=CC, weights=weights )
# cat( " *** calc counts") ; a1 <- Sys.time(); print(a1-a0) ; a0 <- a1
e1$f.yi.qk <- f.yi.qk
v1 <- array( e1$nik, dim=c(I,CC,TP) )
e1$pjk <- pjk
e1$n.k <- e1$count_pik
e1$r.jk <- e1$n.jk <- NULL
e1$n.ik <- v1
e1$f.qk.yi <- e1$fqkyi
e1$theta.k <- theta.k
e1$irtmodel <- irtmodel
return(e1)
}
.e.step.missing1 <- rasch_mml2_estep_missing1
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.