BoxCoxTrans {caret} | R Documentation

## Box-Cox and Exponential Transformations

### Description

These classes can be used to estimate transformations and apply them to existing and future data

### Usage

    BoxCoxTrans(y, ...)

    ## Default S3 method:
    BoxCoxTrans(y, x = rep(1, length(y)), fudge = 0.2,
      numUnique = 3, na.rm = FALSE, ...)

    ## S3 method for class 'BoxCoxTrans'
    print(x, newdata, digits = 3, ...)

    ## S3 method for class 'BoxCoxTrans'
    predict(object, newdata, ...)

### Arguments

`y` | a numeric vector of data to be transformed. For `BoxCoxTrans`, the data must be strictly positive.
`x` | an optional dependent variable to be used in a linear model.
`fudge` | a tolerance value: lambda values within +/-fudge will be coerced to 0 and within 1+/-fudge will be coerced to 1.
`numUnique` | how many unique values should `y` have to estimate the transformation?
`na.rm` | a logical value indicating whether `NA` values should be stripped from `y` and `x` before the computation proceeds.
`newdata` | a numeric vector of values to transform.
`digits` | minimal number of significant digits.
`object` | an object of class `BoxCoxTrans` or `expoTrans`.
`...` | for `BoxCoxTrans`: options to pass to `boxcox`. `plotit` should not be passed through. For `predict.BoxCoxTrans`, additional arguments are ignored.

### Details

`BoxCoxTrans` function is basically a wrapper for the `boxcox` function in the MASS library. It can be used to estimate the transformation and apply it to new data.

`expoTrans` estimates the exponential transformation of Manly (1976) but assumes a common mean for the data. The transformation parameter is estimated by directly maximizing the likelihood.

If `any(y <= 0)` or if `length(unique(y)) < numUnique`, lambda is not estimated and no transformation is applied.

### Value

Both functions returns a list of class of either `BoxCoxTrans` or `expoTrans` with elements

`lambda` | estimated transformation value
`fudge` | value of `fudge`
`n` | number of data points used to estimate lambda
`summary` | the results of `summary(y)`
`ratio` | `max(y)/min(y)`
`skewness` | sample skewness statistic

`BoxCoxTrans` also returns:

`fudge` | value of `fudge`

The `predict` functions returns numeric vectors of transformed values

### Author(s)

Max Author

### References

Box, G. E. P. and Cox, D. R. (1964) An analysis of transformations (with discussion). Journal of the Royal Statistical Society B, 26, 211-252. Manly, B. L. (1976) Exponential data transformations. The Statistician, 25, 37 - 42.

### See Also

`boxcox`, `preProcess`, `optim`

### Examples

    data(BloodBrain)

    ratio <- exp(logBBB)
    bc <- BoxCoxTrans(ratio)
    bc

    predict(bc, ratio[1:5])

    ratio[5] <- NA
    bc2 <- BoxCoxTrans(ratio, bbbDescr$tpsa, na.rm = TRUE)
    bc2

    manly <- expoTrans(ratio)
    manly

[Package caret version 6.0-73 Index]