R: Penalty function

SCAD {DiceKriging} | R 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")

[Package DiceKriging version 1.5.5 Index]