Nothing
## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "figures/benchmarking-",
fig.width = 7,
fig.height = 5,
dpi = 150,
message = FALSE,
warning = FALSE
)
LOCAL <- identical(Sys.getenv("LOCAL"), "TRUE")
## ----packages, include=FALSE--------------------------------------------------
needed <- c("bigmemory", "bench", "survival", "plsRcox", "bigPLScox")
has <- vapply(needed, requireNamespace, logical(1), quietly = TRUE)
if (!all(has)) {
missing <- paste(needed[!has], collapse = ", ")
knitr::opts_chunk$set(eval = FALSE)
message("Note: skipping code execution because these packages are missing: ", missing)
}
## ----packages_lib-------------------------------------------------------------
library(bigPLScox)
library(survival)
library(bench)
library(bigmemory)
library(plsRcox)
## ----simulate-data------------------------------------------------------------
set.seed(2024)
sim_design <- dataCox(
n = 2000,
lambda = 2,
rho = 1.5,
x = matrix(rnorm(2000 * 50), ncol = 50),
beta = c(1, 3, rep(0, 48)),
cens.rate = 5
)
cox_data <- list(
x = as.matrix(sim_design[, -(1:3)]),
time = sim_design$time,
status = sim_design$status
)
X_big <- bigmemory::as.big.matrix(cox_data$x)
## ----dense-benchmark----------------------------------------------------------
bench_dense <- bench::mark(
coxgpls = coxgpls(
cox_data$x,
cox_data$time,
cox_data$status,
ncomp = 5
),
big_pls = big_pls_cox(cox_data$x, cox_data$time, cox_data$status, ncomp = 5),
big_pls_fast = big_pls_cox_fast(cox_data$x, cox_data$time, cox_data$status, ncomp = 5),
big_pls_bb = big_pls_cox_gd(X_big, cox_data$time, cox_data$status, ncomp = 5),
big_pls_gd = big_pls_cox_gd(X_big, cox_data$time, cox_data$status, ncomp = 5, method = "gd"),
coxph = coxph(Surv(cox_data$time, cox_data$status) ~ cox_data$x, ties = "breslow"),
iterations = 75,
check = FALSE
)
bench_dense$expression <- names(bench_dense$expression)
bench_dense[, c("expression", "median", "itr/sec", "mem_alloc")]
## ----big-benchmark------------------------------------------------------------
bench_big <- bench::mark(
big_pls_fast = big_pls_cox_fast(X_big, cox_data$time, cox_data$status, ncomp = 5),
big_pls = big_pls_cox(cox_data$x, cox_data$time, cox_data$status, ncomp = 5),
big_pls_gd = big_pls_cox_gd(X_big, cox_data$time, cox_data$status, ncomp = 5, max_iter = 300),
iterations = 75,
check = FALSE
)
bench_big$expression <- names(bench_big$expression)
bench_big[, c("expression", "median", "itr/sec", "mem_alloc")]
## ----dense-plot---------------------------------------------------------------
plot(bench_dense, type = "jitter")
## ----big-plot-----------------------------------------------------------------
plot(bench_big, type = "jitter")
## ----export-benchmark, eval = FALSE-------------------------------------------
# if (!dir.exists("inst/benchmarks/results")) {
# dir.create("inst/benchmarks/results", recursive = TRUE)
# }
# write.csv(bench_dense[, 1:9], file = "inst/benchmarks/results/benchmark-dense.csv", row.names = FALSE)
# write.csv(bench_big[, 1:9], file = "inst/benchmarks/results/benchmark-big.csv", row.names = FALSE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.