The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Evaluation of sparse version of SuSiE

Kaiqian Zhang

2023-02-17

Set up environment

library(Matrix)
library(susieR)
set.seed(1)

Overview

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.

Simulate data

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 form

susie.dense <- susie(X.dense,y)

X in a sparse form

susie.sparse <- susie(X.sparse,y)

Further step

We encourage people who are insterested in improving SuSiE can get insights from those line profiles provided.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.