test_that("combine.distcompare works", {
n <- 32
p <- 10
s <- 21
# covariates and coefficients
x <- matrix( stats::rnorm( p * n ), nrow = n, ncol = p )
beta <- (1:10)/10
#outcome
y <- x %*% beta + stats::rnorm(n)
# fake posterior
post_beta <- matrix(beta, nrow=p, ncol=s) + stats::rnorm(p*s, 0, 0.1)
post_mu <- x %*% post_beta #posterior predictive distributions
# fit models
## L1 model
fit.p2 <- WpProj(X=x, eta=post_mu, power = 2.0,
method = "L1", #default
solver = "lasso" #default
)
## approximate binary program
fit.p2.bp <- WpProj(X=x, eta=post_mu, theta = post_beta, power = 2.0,
method = "binary program",
solver = "lasso" #default because approximate algorithm is faster
)
## compare performance by measuring distance from full model
dc <- distCompare(models = list("L1" = fit.p2, "BP" = fit.p2.bp))
testthat::expect_silent(cc1 <- combine.distcompare(dc,dc))
testthat::expect_silent(cc2 <- combine.distcompare(list(dc,dc)))
testthat::expect_equal(cc1, cc2)
testthat::expect_true(inherits(cc1, "distcompare"))
testthat::expect_message(cc <- combine.distcompare(dc))
testthat::expect_equal(cc, dc)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.