## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width = 6,
  fig.height = 4.5
)

## ----simulate-----------------------------------------------------------------
library(survival)
library(chestR)

set.seed(20250806)
n <- 120
dat <- data.frame(
  trt = rbinom(n, 1, 0.5),
  cov = rnorm(n),
  biom1 = rnorm(n),
  biom2 = rnorm(n)
)

# Mild treatment-effect modification near the origin of biomarker space
lp <- 0.2 * dat$cov +
  log(0.7) * dat$trt *
  exp(-0.5 * (dat$biom1^2 + dat$biom2^2))
dat$time <- rexp(n, rate = exp(lp))
dat$status <- as.integer(dat$time < 4)
dat$time[dat$status == 0L] <- 4

base <- coxph(Surv(time, status) ~ trt + cov, data = dat)
summary(base)$coefficients

## ----chestr-------------------------------------------------------------------
biom <- dat[, c("biom1", "biom2")]
cr <- chestr(
  base,
  biom,
  grid.size = 8,
  method = "legacy",
  kern.adj = 2,
  min_events_per_df = 5
)

cr
head(cr$estimates[, c("biom1", "biom2", "trt", "ess_events",
                      "events_per_df", "reliable")])

## ----plot---------------------------------------------------------------------
plot(cr, trt.param = "trt", col.scale = "obs", reliable_only = TRUE)

## ----test, eval = FALSE-------------------------------------------------------
# cr <- chestr(
#   base, biom,
#   grid.size = 8, method = "legacy", kern.adj = 2,
#   min_events_per_df = 5,
#   treat_term = "trt"
# )
# # data, treat_term, and fit settings come from cr:
# tst <- chestr_test(cr, B = 99, seed = 1)
# tst

## ----session------------------------------------------------------------------
sessionInfo()

