################################################################ # Example 1 # # The GDI method to validate Q-matrix # ################################################################ set.seed(123) library(Qval) ## generate Q-matrix and data K <- 4 I <- 20 example.Q <- sim.Q(K, I) IQ <- list( P0 = runif(I, 0.0, 0.2), P1 = runif(I, 0.8, 1.0) ) example.data <- sim.data(Q = example.Q, N = 500, IQ = IQ, model = "GDINA", distribute = "horder") ## simulate random mis-specifications example.MQ <- sim.MQ(example.Q, 0.1) ## using MMLE/EM to fit CDM model first example.CDM.obj <- CDM(example.data$dat, example.MQ) ## using the fitted CDM.obj to avoid extra parameter estimation. Q.GDI.obj <- validation(example.data$dat, example.MQ, example.CDM.obj, method = "GDI") ## also can validate the Q-matrix directly Q.GDI.obj <- validation(example.data$dat, example.MQ) ## item level iteration Q.GDI.obj <- validation(example.data$dat, example.MQ, method = "GDI", iter.level = "item", maxitr = 150) ## search method Q.GDI.obj <- validation(example.data$dat, example.MQ, method = "GDI", search.method = "ESA") ## cut-off point Q.GDI.obj <- validation(example.data$dat, example.MQ, method = "GDI", eps = 0.90) ## check QRR print(getQRR(example.Q, Q.GDI.obj$Q.sug)) ################################################################ # Example 2 # # The Wald method to validate Q-matrix # ################################################################ set.seed(123) library(Qval) ## generate Q-matrix and data K <- 4 I <- 20 example.Q <- sim.Q(K, I) IQ <- list( P0 = runif(I, 0.0, 0.2), P1 = runif(I, 0.8, 1.0) ) example.data <- sim.data(Q = example.Q, N = 500, IQ = IQ, model = "GDINA", distribute = "horder") ## simulate random mis-specifications example.MQ <- sim.MQ(example.Q, 0.1) ## using MMLE/EM to fit CDM first example.CDM.obj <- CDM(example.data$dat, example.MQ) ## using the fitted CDM.obj to avoid extra parameter estimation. Q.Wald.obj <- validation(example.data$dat, example.MQ, example.CDM.obj, method = "Wald") ## also can validate the Q-matrix directly Q.Wald.obj <- validation(example.data$dat, example.MQ, method = "Wald") ## check QRR print(getQRR(example.Q, Q.Wald.obj$Q.sug)) ################################################################ # Example 3 # # The Hull method to validate Q-matrix # ################################################################ set.seed(123) library(Qval) ## generate Q-matrix and data K <- 4 I <- 20 example.Q <- sim.Q(K, I) IQ <- list( P0 = runif(I, 0.0, 0.2), P1 = runif(I, 0.8, 1.0) ) example.data <- sim.data(Q = example.Q, N = 500, IQ = IQ, model = "GDINA", distribute = "horder") ## simulate random mis-specifications example.MQ <- sim.MQ(example.Q, 0.1) ## using MMLE/EM to fit CDM first example.CDM.obj <- CDM(example.data$dat, example.MQ) ## using the fitted CDM.obj to avoid extra parameter estimation. Q.Hull.obj <- validation(example.data$dat, example.MQ, example.CDM.obj, method = "Hull") ## also can validate the Q-matrix directly Q.Hull.obj <- validation(example.data$dat, example.MQ, method = "Hull") ## change PVAF to R2 as fit-index Q.Hull.obj <- validation(example.data$dat, example.MQ, method = "Hull", criter = "R2") ## check QRR print(getQRR(example.Q, Q.Hull.obj$Q.sug)) ################################################################ # Example 4 # # The MLR-B method to validate Q-matrix # ################################################################ set.seed(123) library(Qval) ## generate Q-matrix and data K <- 4 I <- 20 example.Q <- sim.Q(K, I) IQ <- list( P0 = runif(I, 0.0, 0.2), P1 = runif(I, 0.8, 1.0) ) example.data <- sim.data(Q = example.Q, N = 500, IQ = IQ, model = "GDINA", distribute = "horder") ## simulate random mis-specifications example.MQ <- sim.MQ(example.Q, 0.1) ## using MMLE/EM to fit CDM first example.CDM.obj <- CDM(example.data$dat, example.MQ) ## using the fitted CDM.obj to avoid extra parameter estimation. Q.MLR.obj <- validation(example.data$dat, example.MQ, example.CDM.obj, method = "MLR-B") ## also can validate the Q-matrix directly Q.MLR.obj <- validation(example.data$dat, example.MQ, method = "MLR-B") ## check QRR print(getQRR(example.Q, Q.Hull.obj$Q.sug))