R: Yeo-Johnson Transformation

yeo.johnson {VGAM} | R Documentation

## Yeo-Johnson Transformation

### Description

Computes the Yeo-Johnson transformation, which is a normalizing transformation.

### Usage

    yeo.johnson(y, lambda, derivative = 0,
                epsilon = sqrt(.Machine$double.eps), inverse = FALSE)

### Arguments

`y` | Numeric, a vector or matrix.
`lambda` | Numeric. It is recycled to the same length as `y` if necessary.
`derivative` | Non-negative integer. The default is the ordinary function evaluation, otherwise the derivative with respect to `lambda`.
`epsilon` | Numeric and positive value. The tolerance given to values of `lambda` when comparing it to 0 or 2.
`inverse` | Logical. Return the inverse transformation?

### Details

The Yeo-Johnson transformation can be thought of as an extension of the Box-Cox transformation. It handles both positive and negative values, whereas the Box-Cox transformation only handles positive values. Both can be used to transform the data so as to improve normality. They can be used to perform LMS quantile regression.

### Value

The Yeo-Johnson transformation or its inverse, or its derivatives with respect to `lambda`, of `y`.

### Note

If `inverse = TRUE` then the argument `derivative = 0` is required.

### Author(s)

Thomas W. Yee

### References

Yeo, I.-K. and Johnson, R. A. (2000). A new family of power transformations to improve normality or symmetry. Biometrika, 87, 954–959.

Yee, T. W. (2004). Quantile regression via vector generalized additive models. Statistics in Medicine, 23, 2295–2315.

### See Also

`lms.yjn`, `boxcox`.

### Examples

    y <- seq(-4, 4, len = (nn <- 200))
    ltry <- c(0, 0.5, 1, 1.5, 2)  # Try these values of lambda
    lltry <- length(ltry)
    psi <- matrix(as.numeric(NA), nn, lltry)
    for (ii in 1:lltry)
      psi[, ii] <- yeo.johnson(y, lambda = ltry[ii])

    ## Not run:
    matplot(y, psi, type = "l", ylim = c(-4, 4), lwd = 2, lty = 1:lltry,
            ylab = "Yeo-Johnson transformation", col = 1:lltry, las = 1,
            main = "Yeo-Johnson transformation with some values of lambda")
    abline(v = 0, h = 0)
    legend(x = 1, y = -0.5, lty = 1:lltry, legend = as.character(ltry),
           lwd = 2, col = 1:lltry)
    ## End(Not run)

[Package VGAM version 1.1-3 Index]