Last data update: 2014.03.03

R: Penalty function
SCADR Documentation

Penalty function

Description

Smoothly Clipped Absolute Deviation function.

Usage

SCAD(x, lambda)

Arguments

x

a vector where the function is to be evaluated.

lambda

a number representing a tuning parameter.

Details

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.

Value

A vector containing the SCAD values at x.

Note

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).

Author(s)

O. Roustant, D. Ginsbourger, Ecole des Mines de St-Etienne.

References

R. Li and A. Sudjianto (2005), Analysis of Computer Experiments Using Penalized Likelihood in Gaussian Kriging Models, Technometrics, 47 no. 2, 111-120.

See Also

SCAD.derivative and km for a famous example

Examples

 
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")

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(DiceKriging)
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/DiceKriging/SCAD.Rd_%03d_medium.png", width=480, height=480)
> ### Name: SCAD
> ### Title: Penalty function
> ### Aliases: SCAD
> ### Keywords: models htest
> 
> ### ** Examples
>  
> 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")
> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>