Examples: Interactions and Connectors

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

Simple interactions

model_simple_interactions <- LKT(
  data = val,
  interc = TRUE,
  components = c("Anon.Student.Id", "KC..Default.", "KC..Default."),
  features = c("logitdec", "logitdec", "lineafm"),
  fixedpars = c(.9, .8),
  interacts = c(NA, NA, "Level..Unitname.")
)
check_lkt_fit(
  model_simple_interactions,
  expected_r2 = 0.187931,
  expected_loglike = -30845.19646772,
  r2_tolerance = 1e-3,
  loglike_tolerance = 1
)
check_has_coefficient_matching(model_simple_interactions, "^lineafmKC[.][.]Default[.]:Level[.][.]Unitname[.]")

Individualized Additive Factors Model

model_iafm <- LKT(
  data = val,
  interc = TRUE,
  components = c(
    "Anon.Student.Id",
    "KC..Default.",
    "KC..Default.",
    "KC..Default."
  ),
  features = c("intercept", "intercept", "lineafm$", "lineafm"),
  interacts = c(NA, NA, NA, "Anon.Student.Id")
)
check_lkt_fit(model_iafm, expected_r2 = 0.309291, expected_loglike = -26235.52237198)
check_has_coefficient_matching(model_iafm, "^lineafmKC[.][.]Default[.]:Anon[.]Student[.]Id")

Connectors

model_connectors <- LKT(
  data = val,
  interc = TRUE,
  connectors = c("+", "*"),
  components = c("Anon.Student.Id", "KC..Default.", "KC..Default."),
  features = c("logitdec", "logitdec$", "lineafm$"),
  fixedpars = c(.9, .85)
)
check_lkt_fit(
  model_connectors,
  expected_r2 = 0.214132,
  expected_loglike = -29849.99089373,
  r2_tolerance = 1e-3,
  loglike_tolerance = 1
)
check_has_coefficient_matching(model_connectors, "^lineafmKC[.][.]Default[.]")