Learn R Programming

car (version 2.1-4)

bcPower: Box-Cox, Yeo-Johnson and Basic Power Transformations

Description

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

Usage

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.

Value

Returns a vector or matrix of transformed values.

Details

The Box-Cox family of scaled power transformations equals \(((U + \gamma)^{\lambda}-1)/\lambda\) for \(\lambda \neq 0\), 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^{\lambda}\) if \(\lambda\) is not zero, and \(\log(\lambda)\) 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.

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

Run this code
U <- c(NA, (-3:3))
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))

Run the code above in your browser using DataLab