# SLOPE: SLOPE: Sorted L1 Penalized Estimation In SLOPE: Sorted L1 Penalized Estimation (SLOPE)

## Description

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 β.

## Usage

 1 2 SLOPE(X, y, fdr = 0.2, lambda = "gaussian", sigma = NULL, normalize = TRUE, solver = c("default", "matlab"), ...) 

## Arguments

 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 create_lambda) 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)

## Details

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.

## Value

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