sortedL1Prox()
is a new function that computes the proximal operator for the sorted L1 norm (the penalty term in SLOPE).regularizationWeights()
is a new function that returns the penalty weights (lambda sequence) for SLOPE or OSCAR.SLOPE()
gains two arguments: theta1
and theta2
to control the behavior using the parametrization from L. W. Zhong and J. T. Kwok, “Efficient sparse modeling with automatic feature grouping,” IEEE Transactions on Neural Networks and Learning Systems, vol. 23, no. 9, pp. 1436–1447, Sep. 2012, doi: 10.1109/TNNLS.2012.2200262. q
is no longer used with OSCAR models. Thanks, Nuno Eusebio.SLOPE()
has gained a new argument, prox_method
, which allows the user to select prox algorithm to use. There is no an additional algorithm in the package, based on the PAVA algorithm used in isotonic regression, that can be used. Note that this addition is mostly of academic interest and does not need to be changed by the user.q
parameter is no longer allowed to be smaller than 1e-6
to avoid constructions of regularization paths with infinite lambda
values.lambda
argument in SLOPE()
now also allowed the input "lasso"
to obtain the standard lasso.trainSLOPE()
lambda = "gaussian"
were incorrectly computed, increasing and then decreasing. This is now fixed and regularization weights in this case are now always non-increasing.trainSLOPE()
for multinomial models (thanks @jakubkala and 1)trainSLOPE()
was previously hampered by erroneous refitting of the models, which has been fixed now (thanks @jakubkala and
yvar
argument in plotDiagnostics()
that was previously deprecated is now defunct.missclass
for the measure
argument in trainSLOPE()
has been deprecated in favor of misclass
.SLOPE()
.intercept = FALSE
and family = "gaussian"
(#13, thanks, Patrick Tardivel).tol_rel_coef_change
argument to SLOPE()
as a convergence criterion for the FISTA solver that sets a tolerance for the relative change in coefficients across iterations.std::sqrt()
in src/SLOPE.cpp
.alpha
(previously sigma
) is now invariant to the number of observations, which is achieved by scaling the penalty part of the objective by the square root of the number of observations if scale = "l2"
and the number of observations if scale = "sd"
or "none"
. No scaling is applied when scale = "l1"
.sigma
argument is deprecated in favor of alpha
in SLOPE()
, coef.SLOPE()
, and predict.SLOPE()
.n_sigma
argument is deprecated in favor of path_length
in SLOPE()
lambda_min_ratio
argument is deprecated in favor of alpha_min_ratio
in SLOPE()
lambda
in SLOPE()
has changed from "gaussian"
to "bh"
.scale = "sd"
now scales with the population standard deviation rather than the sample standard deviation, i.e. the scaling factor now used is the number of observations (and not the number of observations minus one as before).path_length
has changed from 100 to 20.plot.SLOPE()
has gained an argument x_variable
that controls what is plotted on the x axis.max_variables
criterion is hit, the solution path returned will now include also the last solution (which was not the case before). Thanks, @straw-boy.rho
instead of 1
is now used in the factorization part for the ADMM solver.deviance()
and SLOPE()
that were taking too long to execute have been removed or modified.This version of SLOPE represents a major change to the package. We have merged functionality from the owl package into this package, which means there are several changes to the API, including deprecated functions.
SLOPE_solver()
, SLOPE_solver_matlab()
, prox_sorted_L1()
, and create_lambda()
have been deprecated (and will be defunct in the next version of SLOPE)X
, fdr
, and normalize
have been deprecated in SLOPE()
and replaced by x
, q
, scale
and center
, respectively"default"
and "matlab"
to argument solver
in SLOPE()
have been deprecated and replaced with "fista"
and "admm"
, which uses the accelerated proximal gradient method FISTA and alternating direction of multipliers method (ADMM) respectivelyfamily = "gaussian"
family
argument in SLOPE()
)lambda
is now scaled (divided by) the number of observations (rows) in x
screen = TRUE
in SLOPE()
. The type of algorithm can also be set via screen_alg
.SLOPE()
now returns an object of class "SLOPE"
(and an additional class depending on input to family
in SLOPE()
SLOPE
objects gain coef()
and plot()
methods.SLOPE
now uses screening rules to speed up model fitting in the high-dimensional regimetrainSLOPE()
trains SLOPE with repeated k-folds cross-validationcaretSLOPE()
enables model-tuning using the caret packageSLOPE()
now fits an entire path of regularization sequences by defaultnormalize
option to SLOPE()
has been replaced by scale
and center
, which allows granular options for standardizationdeviance()
returns the deviance from the fitscore()
can be used to assess model performance against new dataplotDiagnostics()
has been included to visualize data from the solver (if diagnostics = TRUE
in the call to SLOPE()
)lambda = "oscar" in the call to
SLOPE()`