##
## (2) examples based on dataset sim.dina
##
# DINA Model
d1 <- din(sim.dina, q.matr = sim.qmatrix, rule = "DINA",
conv.crit = 0.01, maxit = 500, progress = TRUE)
summary(d1)
# Mixed DINA and DINO Model
d1b <- din(sim.dina, q.matr = sim.qmatrix, rule =
c(rep("DINA", 7), rep("DINO", 2)), conv.crit = 0.01,
maxit = 500, progress = FALSE)
summary(d1b)
# DINO Model
d2 <- din(sim.dina, q.matr = sim.qmatrix, rule = "DINO",
conv.crit = 0.01, maxit = 500, progress = FALSE)
summary(d2)
# Comparison of DINA and DINO estimates
lapply(list("guessing" = rbind("DINA" = d1$guess[,1],
"DINO" = d2$guess[,1]), "slipping" = rbind("DINA" =
d1$slip[,1], "DINO" = d2$slip[,1])), round, 2)
# Comparison of the information criteria
c("DINA"=d1$AIC, "MIXED"=d1b$AIC, "DINO"=d2$AIC)
# following estimates:
d1$coef # guessing and slipping parameter
d1$guess # guessing parameter
d1$slip # slipping parameter
d1$skill.patt # probabilities for skills
d1$attribute.patt # attribute pattern with probabilities
d1$subj.pattern # pattern per subject
# posterior probabilities for every response pattern
d1$posterior
##
## (3) examples based on dataset sim.dino
##
# DINO Estimation
d3 <- din(sim.dino, q.matr = sim.qmatrix, rule = "DINO",
conv.crit = 0.005, progress = FALSE)
# Mixed DINA and DINO Model
d3b <- din(sim.dino, q.matr = sim.qmatrix, rule =
c(rep("DINA", 4), rep("DINO", 5)), conv.crit = 0.001,
progress = FALSE)
# DINA Estimation
d4 <- din(sim.dino, q.matr = sim.qmatrix, rule = "DINA",
conv.crit = 0.005, progress = FALSE)
# Comparison of DINA and DINO estimates
lapply(list("guessing" = rbind("DINO" = d3$guess[,1],
"DINA" = d4$guess[,1]), "slipping" = rbind("DINO" =
d3$slip[,1], "DINA" = d4$slip[,1])), round, 2)
# Comparison of the information criteria
c("DINO"=d3$AIC, "MIXED"=d3b$AIC, "DINA"=d4$AIC)
##
## (4) example estimation with weights based on dataset sim.dina
##
# Here, a weighted maximum likelihood estimation is used
# This could be useful for survey data.
# i.e. first 200 persons have weight 2, the other have weight 1
(weights <- c(rep(2, 200), rep(1, 200)))
d5 <- din(sim.dina, sim.qmatrix, rule = "DINA", conv.crit =
0.005, weights = weights, progress = FALSE)
# Comparison of the information criteria
c("DINA"=d1$AIC, "WEIGHTS"=d5$AIC)
##
## (5) example estimation within a Balanced Incomplete
## Block (BIB) Design generated on dataset sim.dina
##
# generate BIB data
# The next example shows that the din function
# works for (relatively arbitrary) missing value pattern
# Here, a missing by design is generated in the dataset dinadat.bib
sim.dina.bib <- sim.dina
sim.dina.bib[1:100, 1:3] <- NA
sim.dina.bib[101:300, 4:8] <- NA
sim.dina.bib[301:400, c(1,2,9)] <- NA
d6 <- din(sim.dina.bib, sim.qmatrix, rule = "DINA",
conv.crit = 0.0005, weights = weights, maxit=200)
d7 <- din(sim.dina.bib, sim.qmatrix, rule = "DINO",
conv.crit = 0.005, weights = weights)
# Comparison of DINA and DINO estimates
lapply(list("guessing" = rbind("DINA" = d6$guess[,1],
"DINO" = d7$guess[,1]), "slipping" = rbind("DINA" =
d6$slip[,1], "DINO" = d7$slip[,1])), round, 2)
Run the code above in your browser using DataLab