boxcox {bestNormalize} | R Documentation |
Box-Cox Normalization
Description
Perform a Box-Cox transformation and center/scale a vector to attempt normalization
Usage
boxcox(x, standardize = TRUE, ...)
## S3 method for class 'boxcox'
predict(object, newdata = NULL, inverse = FALSE, ...)
## S3 method for class 'boxcox'
print(x, ...)
Arguments
x |
A vector to normalize with Box-Cox |
standardize |
If TRUE, the transformed values are also centered and scaled, such that the transformation attempts a standard normal |
... |
Additional arguments that can be passed to the estimation of the lambda parameter (lower, upper, epsilon) |
object |
an object of class 'boxcox' |
newdata |
a vector of data to be (reverse) transformed |
inverse |
if TRUE, performs reverse transformation |
Details
boxcox
estimates the optimal value of lambda for the Box-Cox
transformation. This transformation can be performed on new data, and
inverted, via the predict
function.
The function will return an error if a user attempt to transform nonpositive data.
Value
A list of class boxcox
with elements
x.t |
transformed original data |
x |
original data |
mean |
mean after transformation but prior to standardization |
sd |
sd after transformation but prior to standardization |
lambda |
estimated lambda value for skew transformation |
n |
number of nonmissing observations |
norm_stat |
Pearson's P / degrees of freedom |
standardize |
was the transformation standardized |
The predict
function returns the numeric value of the transformation
performed on new data, and allows for the inverse transformation as well.
References
Box, G. E. P. and Cox, D. R. (1964) An analysis of transformations. Journal of the Royal Statistical Society B, 26, 211-252.
See Also
Examples
x <- rgamma(100, 1, 1)
bc_obj <- boxcox(x)
bc_obj
p <- predict(bc_obj)
x2 <- predict(bc_obj, newdata = p, inverse = TRUE)
all.equal(x2, x)