Performs variable selection using SLOPE (Sorted L1 Penalized Estimation). Given a design matrix X and a response vector y, find the coefficient vector β minimizing
\frac{1}{2} \Vert Xβ - y \Vert_2^2 + σ \cdot ∑_{i=1}^p λ_i |β|_{(i)},
where the λ sequence is chosen to control the false discovery rate associated with nonzero components of β.
1 2 |
X |
the n-by-p design matrix |
y |
response vector of length n |
fdr |
target FDR (false discovery rate) |
lambda |
specifcation of λ, either one of "bhq" or "gaussian",
or a vector of length p, sorted in decreasing order
(see |
sigma |
noise level. If omitted, estimated from the data (see Details). |
normalize |
whether to center the input data and re-scale the columns of the design matrix to have unit norm. Do not disable this unless you are certain that your data is appropriately pre-processed. |
solver |
which SLOPE solver to use (see Details) |
... |
additional arguments to pass to the solver (see the relevant solver) |
At present, two solvers for the SLOPE problem are supported. By
default, we use SLOPE_solver
, which is mostly written in R but
uses a fast prox implemented in C. If you have MATLAB installed, it is also
possible to use the TFOCS solver for SLOPE. This requires the MATLAB package
TFOCS and the R package R.matlab
.
If the noise level is unknown, it is estimated from the data using one of two methods. When n is large enough compared to p, the classical unbiased estimate of σ^2 is used. Otherwise, the iterative SLOPE algorithm is used, in which a decreasing sequence of σ^2 estimates is used until the set of selected variables stabilizes. For details, see Section 3.2.3 of the SLOPE paper.
An object of class SLOPE.result
. This object is a list
containing at least the following components:
lambda |
the λ sequence used |
lambda_method |
method of λ construction ("bhq", "gaussian", or "user") |
sigma |
(sequence of) noise level(s) used |
beta |
optimized coefficient vector β |
selected |
selected variables (variables i with β_i > 0) |
SLOPE_solver
Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.