## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  out.width = "100%"
)

## ----setup--------------------------------------------------------------------
library(cases)

## ----categorize1--------------------------------------------------------------
# real data example from publication here
set.seed(123)
M <- as.data.frame(mvtnorm::rmvnorm(10, mean = rep(0, 3), sigma = 2 * diag(3)))
M

## categorize at 0 by default
yhat <- categorize(M)
yhat

## define multiple cutpoints to define multiple decision rules per marker
C <- c(0, 1, 0, 1, 0, 1)
a <- c(1, 1, 2, 2, 3, 3)
categorize(M, C, a)


## this can even be used to do multi-class classification, like this:
C <- matrix(rep(c(-1, 0, 1, -2, 0, 2), 3), ncol = 3, byrow = TRUE)
C
categorize(M, C, a)

## ----compare1-----------------------------------------------------------------
## consider binary prediction from 3 models from previous r chunk
names(yhat) <- paste0("rule", 1:ncol(yhat))
yhat

## assume true labels
y <- c(rep(1, 5), rep(0, 5))

## compare then results in
compare(yhat, y)

## ----evaluate1----------------------------------------------------------------
evaluate(compare(yhat, y))

## ----draw_data1---------------------------------------------------------------
draw_data_lfc(n = 20)

## ----draw_data2---------------------------------------------------------------
draw_data_roc(n = 20)

## ----workflow1----------------------------------------------------------------
M %>%
  categorize() %>%
  compare(y) %>%
  evaluate()

## ----dtafun1, eval=FALSE------------------------------------------------------
#  ?evaluate

## -----------------------------------------------------------------------------
set.seed(1337)

data <- draw_data_roc(
  n = 120, prev = c(0.25, 0.75), m = 4,
  delta = 0.05, e = 10, auc = seq(0.90, 0.95, 0.025), rho = c(0.25, 0.25)
)

lapply(data, head)

## ----viz_comp-----------------------------------------------------------------
## comparison regions
results_comp <- data %>% evaluate(
  alternative = "greater",
  alpha = 0.025,
  benchmark = c(0.7, 0.8),
  analysis = "co-primary",
  regu = TRUE,
  adj = "maxt"
)
visualize(results_comp)

## -----------------------------------------------------------------------------
## confidence regions
results_conf <- data %>% evaluate(
  alternative = "greater",
  alpha = 0.025,
  benchmark = c(0.7, 0.8),
  analysis = "full",
  regu = TRUE,
  adj = "maxt"
)
visualize(results_conf)

## ----example_wdbc, eval=FALSE, echo=TRUE--------------------------------------
#  vignette("example_wdbc", "cases")