caret (version 6.0-86)

# BoxCoxTrans: 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, ...)# S3 method for default
BoxCoxTrans(
y,
x = rep(1, length(y)),
fudge = 0.2,
numUnique = 3,
na.rm = FALSE,
...
)# S3 method for BoxCoxTrans
print(x, newdata, digits = 3, ...)# S3 method for BoxCoxTrans
predict(object, newdata, ...)```

## Arguments

y

a numeric vector of data to be transformed. For `BoxCoxTrans`, the data must be strictly positive.

for `BoxCoxTrans`: options to pass to `boxcox`. `plotit` should not be passed through. For `predict.BoxCoxTrans`, additional arguments are ignored.

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

## 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

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

## 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

```# NOT RUN {
data(BloodBrain)

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

predict(bc, ratio[1:5])

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

manly <- expoTrans(ratio)
manly

# }
```