## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set(collapse = TRUE, comment = "#>") ## ----------------------------------------------------------------------------- library(driftwatch) sim <- dw_simulate(n_items = 120, n_windows = 30, mean_n = 70, onset_range = c(5, 18), seed = 7) table(sim$truth$type) ## ----------------------------------------------------------------------------- est <- dw_estimate(sim$responses, sim$bank) round(est$z[1:4, 1:8], 2) ## ----------------------------------------------------------------------------- tu <- dw_tune(est, target = 0.02, n_rep = 4, seed = 1) tu$h ## ----------------------------------------------------------------------------- mon <- dw_monitor(est, h = tu$h) mon table(alarm = mon$items$alarm, truth = sim$truth$type) ## ----------------------------------------------------------------------------- log <- dw_actions(mon, anchors = sim$bank$item[1:20], analyst = "psychometrics") head(log[c("item", "alarm_window", "type", "magnitude", "action")]) ## ----------------------------------------------------------------------------- flagged <- mon$items$item[mon$items$alarm] drifted <- sim$truth$item[sim$truth$type != "stable"] form <- c(head(drifted, 8), head(setdiff(sim$bank$item, drifted), 32)) last <- est$b_hat[, ncol(est$b_hat)] dw_impact(form, sim$bank, sim$b_path[, ncol(sim$b_path)], flagged, recalibrated = last[flagged], cut = 0.5)