generate.matrix {abess} | R Documentation |
Generate matrix composed of a sparse matrix and low-rank matrix
Description
Generate simulated matrix that is the superposition of a low-rank component and a sparse component.
Usage
generate.matrix(
n,
p,
rank = NULL,
support.size = NULL,
beta = NULL,
snr = Inf,
sigma = NULL,
seed = 1
)
Arguments
n |
The number of observations. |
p |
The number of predictors of interest. |
rank |
The rank of low-rank matrix. |
support.size |
The number of nonzero coefficients in the underlying regression
model. Can be omitted if |
beta |
The coefficient values in the underlying regression model.
If it is supplied, |
snr |
A positive value controlling the signal-to-noise ratio (SNR).
A larger SNR implies the identification of sparse matrix is much easier.
Default |
sigma |
A numerical value supplied the variance of the gaussian noise.
Default |
seed |
random seed. Default: |
Details
The low rank matrix is generated by
, where
is an
-by-
matrix and
is a
-by-
matrix.
Each element in
(or
) are i.i.d. drawn from
.
The sparse matrix is an
-by-
matrix.
It is generated by choosing a support set of size
support.size
uniformly at random.
The non-zero entries in are independent Bernoulli (-1, +1) entries.
The noise matrix is an
-by-
matrix,
the elements in
are i.i.d. gaussian random variable
with standard deviation
.
The SNR is defined as
as the variance of vectorized matrix divided
by
.
The matrix is the superposition of
,
,
:
Value
A list
object comprising:
x |
An |
L |
The latent low rank matrix. |
S |
The latent sparse matrix. |
Author(s)
Jin Zhu
Examples
# Generate simulated data
n <- 30
p <- 20
dataset <- generate.matrix(n, p)
stats::heatmap(as.matrix(dataset[["S"]]),
Rowv = NA,
Colv = NA,
scale = "none",
col = grDevices::cm.colors(256),
frame.plot = TRUE,
margins = c(2.4, 2.4)
)