Loading dependencies

library(breastCancerVDX)
library(microbenchmark)
library(Biobase)
library(dplyr)
library(ggplot2)
library(gpowerr)

Loading data

data(vdx)
expressions <- t(exprs(vdx))

Select level of sparsity, find corresponding rho and run benchmark again. Manually select a value of i for which you want to know rho.

i <- 20000
data <- expressions[, 1:i]
a <- auto_gpower(data, k = 2, prop_sparse = 0.5, reg = 'l1')
b <- auto_gpower(data, k = 2, prop_sparse = 0.5, reg = 'l0')

Benchmark for gpower()

i <- 200
data <- expressions[, 1:i]
df <- print(microbenchmark(gpower(data, k = 2, rho = 0.0488, reg = 'l1'),
                           gpower(data, k = 2, rho = 0.00293, reg = 'l0'),
                           times = 50), unit = "s")[, c("expr", "mean")]
df["i"] <- i
df["method"] <- c("l1", "l0")

result <- df
i <- 2000
data <- expressions[, 1:i]
df <- print(microbenchmark(gpower(data, k = 2, rho = 0.04004, reg = 'l1'),
                           gpower(data, k = 2, rho = 0.00171 , reg = 'l0'),
                           times = 20), unit = "s")[, c("expr", "mean")]
df["i"] <- i
df["method"] <- c("l1", "l0")

result <- bind_rows(result, df)
i <- 20000
data <- expressions[, 1:i]
df <- print(microbenchmark(gpower(data, k = 2, rho = 0.03418, reg = 'l1'),
                           gpower(data, k = 2, rho = 0.00134, reg = 'l0'),
                           times = 10), unit = "s")[, c("expr", "mean")]
df["i"] <- i
df["method"] <- c("l1", "l0")

result <- bind_rows(result, df)
png("figures/running_times.png", width = 600, height = 370, res=90)

ggplot(result, aes(x=i, y=mean, color=method)) +
  geom_line() +
  scale_x_log10(breaks = c(200, 2000, 20000)) +
  scale_y_log10() +
  labs(x = "Number of variables", y = "Running time (seconds)", 
       title = "Mean running times on the VDX expressions dataset", 
       color = "Method",
       caption = "Both axis are on a log scale")


dev.off()


plofknaapje/gpowerpca documentation built on July 27, 2021, 4:17 a.m.