# SLOPE: Sorted L1 Penalized Estimation

### 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 |

### Arguments

`X` |
the |

`y` |
response vector of length |

`fdr` |
target FDR (false discovery rate) |

`lambda` |
specifcation of |

`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 |

`lambda_method` |
method of |

`sigma` |
(sequence of) noise level(s) used |

`beta` |
optimized coefficient vector |

`selected` |
selected variables
(variables |

### See Also

`SLOPE_solver`