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

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

    ## 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=c(1), y=c(-0.5), lty=1:lltry, legend=as.character(ltry),
           lwd=2, col=1:lltry)
    ## End(Not run)

[Package VGAM version 0.7-9 Index]