Examples: Synthetic Discrimination

source("lkt-vignette-setup.R")
## Executable examples are disabled for routine package builds. Set LKT_RUN_EXPENSIVE_VIGNETTES=true to run this vignette.

Load data

val <- prepare_largeraw_sample()

Synthetic discrimination parameter testing

mnames <- c(
  "IRT",
  "IRT ad inter",
  "AFM",
  "IRT ad inter with AFM",
  "IRT ad"
)
r2s <- data.frame(name = mnames, r2s = NA)
compl <- list(
  c("Anon.Student.Id", "KC..Default."),
  c("Anon.Student.Id", "KC..Default."),
  c("Anon.Student.Id", "KC..Default.", "KC..Default."),
  c("Anon.Student.Id", "KC..Default.", "KC..Default."),
  c("Anon.Student.Id", "KC..Default.")
)
featl <- list(
  c("intercept", "intercept"),
  c("logitdec", "intercept"),
  c("logitdec", "intercept", "lineafm"),
  c("logitdec", "intercept", "lineafm"),
  c("logitdec", "intercept")
)
connl <- list(
  c("+"),
  c("*"),
  c("+", "+"),
  c("*", "+"),
  c("+")
)

for (i in 1:4) {
  modelob <- LKT(
    data = val,
    components = compl[[i]],
    features = featl[[i]],
    connectors = connl[[i]],
    fixedpars = c(.925),
    interc = TRUE,
    verbose = FALSE
  )
  cat("coefs", length(modelob$coefs))
  cat(" R2 =  ", modelob$r2, "\n")
  r2s$r2s[i] <- modelob$r2
}
check_true("synthetic discrimination model count", sum(is.finite(r2s$r2s)) == 4)
check_close("synthetic discrimination IRT R2", r2s$r2s[1], 0.17526, tolerance = 1e-4)
check_close("synthetic discrimination best R2", max(r2s$r2s, na.rm = TRUE), 0.249731, tolerance = 1e-3)