Skip to content

The Yeo-Johnson transformation is a flexible transformation that is similar to Box-Cox, transform_boxcox(), but does not require input values to be greater than zero.

Usage

transform_yj(p)

yj_trans(p)

Arguments

p

Transformation exponent, \(\lambda\).

Details

The transformation takes one of four forms depending on the values of y and \(\lambda\).

  • \(y \ge 0\) and \(\lambda \neq 0\) : \(y^{(\lambda)} = \frac{(y + 1)^\lambda - 1}{\lambda}\)

  • \(y \ge 0\) and \(\lambda = 0\): \(y^{(\lambda)} = \ln(y + 1)\)

  • \(y < 0\) and \(\lambda \neq 2\): \(y^{(\lambda)} = -\frac{(-y + 1)^{(2 - \lambda)} - 1}{2 - \lambda}\)

  • \(y < 0\) and \(\lambda = 2\): \(y^{(\lambda)} = -\ln(-y + 1)\)

References

Yeo, I., & Johnson, R. (2000). A New Family of Power Transformations to Improve Normality or Symmetry. Biometrika, 87(4), 954-959. https://www.jstor.org/stable/2673623

Examples

plot(transform_yj(-1), xlim = c(-10, 10))

plot(transform_yj(0), xlim = c(-10, 10))

plot(transform_yj(1), xlim = c(-10, 10))

plot(transform_yj(2), xlim = c(-10, 10))