solve_slope: Sorted L1 parameters estimation solver for the generalized...

Description Usage Arguments Details Value References Examples

View source: R/solve_slope.R

Description

Solves the sorted L1 penalized probelns for the following regression models:

where X is an n\times p matrix, y\in R^n (linear) or y\in \{0,1\}^n (logistic) depending on the model selection, and |w|_{(i)} denotes the i-th largest entry in |w|.

Usage

1
2
3
solve_slope(X, y, lambda, model = c("linear", "logistic"),
  initial = NULL, max_iter = 10000, grad_iter = 20, opt_iter = 1,
  tol_infeas = 1e-06, tol_rel_gap = 1e-06)

Arguments

X

an n-by-p matrix

y

a vector of length n

lambda

vector of length p, sorted in decreasing order

model

a description of the regression model. Supported models: "linear" (default) and "logistic"

initial

initial guess for w

max_iter

maximum number of iterations in the gradient descent

grad_iter

number of iterations between gradient updates

opt_iter

number of iterations between checks for optimality

tol_infeas

tolerance for infeasibility

tol_rel_gap

tolerance for relative gap between primal and dual problems

Details

This optimization problem is convex and is solved using an accelerated proximal gradient descent method.

Value

The solution vector w

References

M. Bogdan et al. (2015) SLOPE–Adaptive variable selection via convex optimization, http://dx.doi.org/10.1214/15-AOAS842

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Linear model
# Test data
X <- c(0.53766714, 1.833885, -2.2588469, 0.86217332, 0.31876524, -1.3076883, -0.43359202, 0.34262447, 3.5783969, 2.769437, -1.3498869, 3.0349235, 0.72540422, -0.063054873, 0.7147429, -0.20496606, -0.12414435, 1.4896976, 1.4090345, 1.4171924, 0.67149713, -1.2074869, 0.71723865, 1.6302353, 0.48889377, 1.034693, 0.72688513, -0.30344092, 0.29387147, -0.7872828, 0.88839563, -1.1470701, -1.0688705, -0.80949869, -2.9442842, 1.4383803, 0.32519054, -0.75492832, 1.3702985, -1.7115164, -0.10224245, -0.24144704, 0.31920674, 0.3128586, -0.86487992, -0.030051296, -0.16487902, 0.62770729, 1.0932657, 1.109273)
dim(X) <- c(5, 10)
y <- c(1.0734014, -5.3021346, 1.096639, -0.39124089, -0.92884291)
dim(y) <- c(5,1)
y.bin <- c(1, -1, 1, -1, -1)
dim(y.bin) <- c(5,1)
lambda <- c(1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1)
# Estimate parameters for linear model
solve_slope(X, y, lambda, model = 'linear')
# Estimate parameters for logistic model
solve_slope(X, y.bin, lambda, model = 'logistic')

dkucharc/glmSlope documentation built on May 24, 2019, 1:32 a.m.