Examples: Recency and Decay

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()

Recent Performance Factors Analysis

model_rpfa <- LKT(
  data = val,
  interc = TRUE,
  components = c(
    "Anon.Student.Id",
    "KC..Default.",
    "KC..Default.",
    "KC..Default."
  ),
  features = c("intercept", "intercept", "propdec2", "linefail"),
  fixedpars = c(0.372666739924378)
)
check_lkt_fit(
  model_rpfa,
  expected_r2 = 0.309396,
  expected_loglike = -26231.52875846,
  r2_tolerance = 1e-3,
  loglike_tolerance = 1
)
check_true("fixed propdec2 parameter used", is.na(model_rpfa$optimizedpars)[1])

Recency tracing with logitdec

model_logitdec_recency <- LKT(
  data = val,
  interc = TRUE,
  components = c(
    "Anon.Student.Id",
    "KC..Default.",
    "KC..Default.",
    "KC..Default."
  ),
  features = c("intercept", "intercept", "logitdec", "recency"),
  fixedpars = c(.9, .5)
)
check_lkt_fit(model_logitdec_recency, expected_r2 = 0.329326, expected_loglike = -25474.53126101)
check_has_coefficients(model_logitdec_recency, c("logitdecKC..Default.", "recencyKC..Default."))

Recency tracing with transfer from cluster

model_logitdec_transfer <- LKT(
  data = val,
  interc = TRUE,
  components = c(
    "Anon.Student.Id",
    "KC..Default.",
    "KC..Default.",
    "KC..Default.",
    "KC..Cluster."
  ),
  features = c("intercept", "intercept", "logitdec", "recency", "logitdec"),
  fixedpars = c(.9, .5, .5)
)
check_lkt_fit(model_logitdec_transfer, expected_r2 = 0.329987, expected_loglike = -25449.41953482)
check_has_coefficients(model_logitdec_transfer, c("logitdecKC..Cluster."))

Performance Prediction Equation

model_ppe <- LKT(
  data = val,
  interc = TRUE,
  components = c(
    "Anon.Student.Id",
    "KC..Default.",
    "KC..Default.",
    "KC..Default."
  ),
  features = c("intercept", "intercept", "ppe", "logitdec"),
  fixedpars = c(0.3491901, 0.2045801, 1e-05, 0.9734477, 0.4443027)
)
check_lkt_fit(model_ppe, expected_r2 = 0.349833, expected_loglike = -24695.58586712)
check_has_coefficients(model_ppe, c("ppeKC..Default.", "logitdecKC..Default."))

base4

model_base4 <- LKT(
  data = val,
  interc = TRUE,
  components = c(
    "Anon.Student.Id",
    "KC..Default.",
    "KC..Default.",
    "KC..Default."
  ),
  features = c("intercept", "intercept", "base4", "logitdec"),
  fixedpars = c(0.1890747, 0.6309054, 0.05471752, .5, 0.2160748)
)
check_lkt_fit(model_base4, expected_r2 = 0.316284, expected_loglike = -25969.92489408)
check_has_coefficients(model_base4, c("base4KC..Default.", "logitdecKC..Default."))