Penalty function
Smoothly Clipped Absolute Deviation function.
SCAD(x, lambda)
x |
a vector where the function is to be evaluated. |
lambda |
a number representing a tuning parameter. |
SCAD is an even continuous function equal to 0 at x=0
, and defined piecewise with derivative lambda
in [0, lambda]
, (a*lambda - x)/(a-1)
in [lambda, a*lambda]
, and 0
for x
larger than a*lambda
. As suggested by (Li, Sudjianto, 2005), we set a=3.7
.
A vector containing the SCAD values at x
.
In MLE problems, the penalty value lambda
should tend to 0 when the sample size tends to infinity to insure that the asymptotic properties of Penalized-MLE and MLE are the same (see Li, Sudjianto, 2005).
O. Roustant, D. Ginsbourger, Ecole des Mines de St-Etienne.
R. Li and A. Sudjianto (2005), Analysis of Computer Experiments Using Penalized Likelihood in Gaussian Kriging Models, Technometrics, 47 no. 2, 111-120.
SCAD.derivative
and km
for a famous example
x <- seq(-8,8, length=200) a <- 3.7 lambda <- 1.5 y <- SCAD(x, lambda) plot(x, y, type="l", ylim=c(0,6)) x.knots <- c(-a*lambda, -lambda, 0, lambda, a*lambda) points(x.knots, SCAD(x.knots, lambda), pch=19, cex=0.5) text(6, SCAD(6, lambda)+0.3, paste("lambda =", lambda)) for (i in 1:2) { lambda <- lambda - 0.5 y <- SCAD(x, lambda) lines(x, y, type="l") x.knots <- c(-a*lambda, -lambda, 0, lambda, a*lambda) points(x.knots, SCAD(x.knots, lambda), pch=19, cex=0.5) text(6, SCAD(6, lambda)+0.3, paste("lambda =", lambda)) } abline(v=0, h=0, lty="dotted") title("SCAD function")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.