knitr::opts_chunk$set(collapse = TRUE,comment = "#",fig.width = 4.5, fig.height = 3,fig.align = "center", fig.cap = " ",dpi = 120)
library(Matrix) library(susieR) set.seed(1)
In this vignette, we provide line profiles for revised version SuSiE,
which allows for a sparse matrix structure. We compare speed
performance when the form of the matrix X
is dense and sparse.
In this minimal example, we observe that given a large sparse matrix,
if it is in the dense form, the speed is around 40%
slower than that
in a sparse form.
We randomly simulate a n=1000
by p=1000
dense matrix and a sparse
matrix at sparsity $99\%$, i.e. $99\%$ entries are zeros.
create_sparsity_mat = function(sparsity, n, p) { nonzero <- round(n*p*(1-sparsity)) nonzero.idx <- sample(n*p, nonzero) mat <- numeric(n*p) mat[nonzero.idx] <- 1 mat <- matrix(mat, nrow=n, ncol=p) return(mat) }
n <- 1000 p <- 1000 beta <- rep(0,p) beta[c(1,300,400,1000)] <- 10 X.dense <- create_sparsity_mat(0.99,n,p) X.sparse <- as(X.dense,"CsparseMatrix") y <- c(X.dense %*% beta + rnorm(n))
X
in a dense formsusie.dense <- susie(X.dense,y)
X
in a sparse formsusie.sparse <- susie(X.sparse,y)
We encourage people who are insterested in improving SuSiE can get insights from those line profiles provided.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.