
Computes the Yeo-Johnson transformation, which is a normalizing transformation.
yeo.johnson(y, lambda, derivative = 0,
epsilon = sqrt(.Machine$double.eps), inverse = FALSE)
Numeric, a vector or matrix.
Numeric. It is recycled to the same length as
y
if necessary.
Non-negative integer. The default is
the ordinary function evaluation, otherwise the derivative
with respect to lambda
.
Numeric and positive value. The tolerance given
to values of lambda
when comparing it to 0 or 2.
Logical. Return the inverse transformation?
The Yeo-Johnson transformation or its inverse, or its
derivatives with respect to lambda
, of y
.
The Yeo-Johnson transformation can be thought of as an extension of the Box-Cox transformation. It handles both positive and negative values, whereas the Box-Cox transformation only handles positive values. Both can be used to transform the data so as to improve normality. They can be used to perform LMS quantile regression.
Yeo, I.-K. and Johnson, R. A. (2000) A new family of power transformations to improve normality or symmetry. Biometrika, 87, 954--959.
Yee, T. W. (2004) Quantile regression via vector generalized additive models. Statistics in Medicine, 23, 2295--2315.
# NOT RUN {
y <- seq(-4, 4, len = (nn <- 200))
ltry <- c(0, 0.5, 1, 1.5, 2) # Try these values of lambda
lltry <- length(ltry)
psi <- matrix(as.numeric(NA), nn, lltry)
for (ii in 1:lltry)
psi[, ii] <- yeo.johnson(y, lambda = ltry[ii])
# }
# NOT RUN {
matplot(y, psi, type = "l", ylim = c(-4, 4), lwd = 2, lty = 1:lltry,
ylab = "Yeo-Johnson transformation", col = 1:lltry, las = 1,
main = "Yeo-Johnson transformation with some values of lambda")
abline(v = 0, h = 0)
legend(x = 1, y = -0.5, lty = 1:lltry, legend = as.character(ltry),
lwd = 2, col = 1:lltry)
# }
Run the code above in your browser using DataLab