# pyproximal.SCAD#

class pyproximal.SCAD(sigma, a=3.7)[source]#

Smoothly clipped absolute deviation (SCAD) penalty.

The SCAD penalty is a concave function and is defined as

$\begin{split}\mathrm{SCAD}_{\sigma, a}(\mathbf{x}) = \begin{cases} \sigma x_i, & |x_i| \leq \sigma \\ \frac{-x_i^2 + 2 a \sigma - \sigma^2}{2 (a - 1)}, & \sigma < |x_i| \leq a\sigma \\ \frac{(a + 1)\sigma^2}{2}, & |x_i| > a\sigma \end{cases}\end{split}$
Parameters
sigmafloat

First threshold parameter (named $$\lambda$$ in the original paper [1])

afloat, optional

Second threshold parameter (must be larger than 2). Default is 3.7, see [1] for more information.

Notes

The SCAD penalty is continuous and differentiable and does not suffer from biasedness as the $$\ell_1$$-norm, nor is discontinuous as the hard thresholding penalty. Thus, it fuses the most favourable properties of both penalties.

The proximal operator is given by

$\begin{split}\prox_{\tau \mathrm{SCAD}_{\sigma, a}(\cdot)}(\mathbf{x}) = \begin{cases} \sgn(x_i)\max(0, |x_i| - \sigma), & |x_i| \leq \frac{\sigma(a - 1 - \tau + a\tau)}{a - 1} \\ \frac{(a-1)x_i - \sgn(x_i)a\tau\sigma}{a-1-\tau}, & \frac{\sigma(a - 1 - \tau + a\tau)}{a - 1} < |x_i| \leq a\sigma \\ x_i, & |x_i| > a\sigma \end{cases}\end{split}$
1(1,2)

Fan, J. and Li, R. “Variable selection via nonconcave penalized likelihood and its oracle properties” Journal of the American Statistical Association, 96(456):1348–1360, 2001

Methods

 __init__(sigma[, a]) affine_addition(v) Affine addition chain(g) Chain elementwise(x) grad(x) Compute gradient postcomposition(sigma) Postcomposition precomposition(a, b) Precomposition prox(**kwargs) proxdual(**kwargs)

## Examples using pyproximal.SCAD#

Concave penalties

Concave penalties