The mesa plot was first proposed by de la Torre and Ma (2016) for graphically illustrating the best q-vector(s) for each item. The q-vector on the edge of the mesa is likely to be the best q-vector.

# S3 method for Qval
plot(x, item, type = "best", no.qvector = 10,
  data.label = TRUE, eps = "auto", original.q.label = FALSE,
  auto.ylim = TRUE, ...)



model object of class Qvalidation


a vector specifying which item(s) the plots are drawn for


types of the plot. It can be "best" or "all". If "best", for all q-vectors requiring the same number of attributes, only the one with the largest PVAF is plotted, which means \(K_j\) q-vectors are plotted; If "all", all q-vectors will be plotted.


the number of q vectors that need to be plotted when type="all". The default is 10, which means the 10 q vectors with the largest PVAFs are plotted.


logical; To show data label or not?


the cutoff for PVAF. If not NULL, it must be a value between 0 and 1. A horizontal line will be drawn accordingly.


logical; print the label showing the original q-vector or not?


logical; create y range automatically or not?


additional arguments passed to plot function


de la Torre, J., & Ma, W. (2016, August). Cognitive diagnosis modeling: A general framework approach and its implementation in R. A Short Course at the Fourth Conference on Statistical Methods in Psychometrics, Columbia University, New York.

See also


if (FALSE) { dat <- sim10GDINA$simdat Q <- sim10GDINA$simQ Q[1,] <- c(0,1,0) mod1 <- GDINA(dat = dat, Q = Q, model = "GDINA") out <- Qval(mod1,eps = 0.9) item <- c(1,2,10) plot(out,item=item,data.label=FALSE,type="all") plot(out,item=10,type="best",eps=0.95) plot(out,item=10,type="all",no.qvector=6) }