Box-Cox, Yeo-Johnson and Basic Power Transformations

Share:

Description

Transform the elements of a vector using, the Box-Cox, Yeo-Johnson, or simple power transformations.

Usage

1
2
3
4
5
bcPower(U, lambda, jacobian.adjusted=FALSE, gamma=NULL)

yjPower(U, lambda, jacobian.adjusted = FALSE)

basicPower(U,lambda, gamma=NULL)

Arguments

U

A vector, matrix or data.frame of values to be transformed

lambda

The one-dimensional transformation parameter, usually in the range from -2 to 2, or if U is a matrix or data frame, a vector of length ncol(U) of transformation parameters

jacobian.adjusted

If TRUE, the transformation is normalized to have Jacobian equal to one. The default is FALSE.

gamma

For bcPower or basicPower, the transformation is of U + gamma, where gamma is a positive number called a start that must be large enough so that U + gamma is strictly positive.

Details

The Box-Cox family of scaled power transformations equals (U^(lambda)-1)/lambda for lambda not equal to zero, and log(U) if lambda = 0. If gamma is not specified, it is set equal to zero. U + gamma must be strictly positive to use this family.

If family="yeo.johnson" then the Yeo-Johnson transformations are used. This is the Box-Cox transformation of U+1 for nonnegative values, and of |U|+1 with parameter 2-lambda for U negative. An alternative family to the Yeo-Johnson family is the skewPower family that requires estimating both a power and an second parameter.

The basic power transformation returns U^{λ} if λ is not zero, and \log(λ) otherwise.

If jacobian.adjusted is TRUE, then the scaled transformations are divided by the Jacobian, which is a function of the geometric mean of U for skewPower and yjpower and of U + gamma for bcPower. With this adjustment, the Jacobian of the transformation is always equal to 1.

Missing values are permitted, and return NA where ever U is equal to NA.

Value

Returns a vector or matrix of transformed values.

Author(s)

Sanford Weisberg, <sandy@umn.edu>

References

Fox, J. and Weisberg, S. (2011) An R Companion to Applied Regression, Second Edition, Sage.

Hawkins, D. and Weisberg, S. (2015) Combining the Box-Cox Power and Genralized Log Transformations to Accomodate Negative Responses, submitted for publication.

Weisberg, S. (2014) Applied Linear Regression, Fourth Edition, Wiley Wiley, Chapter 7.

Yeo, In-Kwon and Johnson, Richard (2000) A new family of power transformations to improve normality or symmetry. Biometrika, 87, 954-959.

See Also

powerTransform, skewPower

Examples

1
2
3
4
5
6
7
8
9
U <- c(NA, (-3:3))
## Not run: bcPower(U, 0)  # produces an error as U has negative values
bcPower(U, 0, gamma=4)
bcPower(U, .5, jacobian.adjusted=TRUE, gamma=4)
basicPower(U, lambda = 0, gamma=4)
yjPower(U, 0)
V <- matrix(1:10, ncol=2)
bcPower(V, c(0, 2))
basicPower(V, c(0,1))

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.