tests/testthat/test-smallFastOldComparison.R

library("testthat")
library("survival")

test_that("fastBAR prior is the same as old BAR implementation for cox model", {

  skip_on_cran()
  skip_on_travis()


  p <- 100    # number of covariates
  n <- 300   # sample size


  ## Cox model parameters
  true.beta <- c(1, 0, 0, -1, 1, rep(0, p - 5))

  set.seed(12345)
  ## simulate data from an exponential model
  x        <- matrix(rnorm(p * n, mean = 0, sd = 1), ncol = p)
  ti       <- rweibull(n, shape = 1, scale = exp(-x%*%true.beta))
  ui       <- runif(n, 0, 10) # Controls censoring
  ci       <- rweibull(n, shape = 1, scale = ui * exp(-x%*%true.beta))
  survtime <- pmin(ti, ci)
  delta    <- ti == survtime; mean(delta)

  cyclopsData <- createCyclopsData(Surv(survtime, delta) ~ x, modelType = "cox")
  barPrior    <- createBarPrior(penalty = log(p), initialRidgeVariance =  1 / log(p))
  cyclopsFit <- fitCyclopsModel(cyclopsData,
                                prior = barPrior, fixedCoefficients = NULL)

  cyclopsData <- createCyclopsData(Surv(survtime, delta) ~ x, modelType = "cox")
  fastBarPrior <- createFastBarPrior(penalty = log(p), initialRidgeVariance = 1 / log(p))
  cyclopsFit2 <- fitCyclopsModel(cyclopsData,
                                 prior = fastBarPrior)


  expect_equal(coef(cyclopsFit), coef(cyclopsFit2))
  expect_equal(class(cyclopsFit2)[1], "cyclopsFit")
  expect_equal(class(cyclopsFit2)[2], "cyclopsFastBarFit")
})
OHDSI/BrokenAdaptiveRidge documentation built on April 20, 2023, 10:37 p.m.