| normYJ | R Documentation |
Computes (normalized) Yeo-Johnson transformation
normYJ(
X,
Col2Tra,
la,
Jacobian = TRUE,
inverse = FALSE,
bsb,
trace = FALSE,
...
)
X |
The data matrix: |
Col2Tra |
Which variables to transform. An integer vector of length |
la |
Transformation parameters. A vector of lenghth |
Jacobian |
Requested Jacobian of transformed values. If |
inverse |
Wheather to return the inverse transformation. The default is |
bsb |
Units to be used in the computation of the Jacobian, a vector of length |
trace |
Whether to print intermediate results. Default is |
... |
potential further arguments passed to lower level functions. |
The Yeo-Johnson transformation is the Box-Cox transformation
of y+1 for nonnegative values, and of |y|+1 with parameter
2-\lambda for y negative
The transformed data matrix.
FSDA team, valentin.todorov@chello.at
Yeo, I.K and Johnson, R. (2000), A new family of power transformations to improve normality or symmetry, "Biometrika", Vol. 87, pp. 954-959.
## Not run:
## Example of use of normYJ() with all default options.
## Transform value -3, -2, ..., 3
y <- (-3):3
lambda <- 0
y1 <- normYJ(y, Col2Tra=1, la=lambda)
plot(y, y1, xlab='Original values', ylab='Transformed values')
## Comparison between Box-Cox and Yeo-Johnson transformation.
y <- seq(from=-2, to=2, by=0.1)
n <- length(y)
la <- seq(from=-1, to=3, by=1)
nla <- length(la)
YtraYJ <- matrix(0, nrow=n, ncol=nla)
YtraBC <- matrix(NA, nrow=n, ncol=nla)
posy <- y>0
for(j in 1:nla) {
YtraYJ[,j] <- normYJ(y, 1, la[j], Jacobian=FALSE)
YtraBC[posy, j] <- normBoxCox(y[posy], 1, la[j],Jacobian=FALSE)
}
oldpar <- par(mfrow=c(1,2))
plot(y, YtraYJ[,1], type="n", xlab="Original values",
ylab="Transformed values", main="Yeo-Johnson transformation")
for(j in 1:nla)
lines(y, YtraYJ[,j], col=j)
for(j in 1:nla) {
text(y[1], YtraYJ[1,j], paste0("la=", la[j]))
}
plot(y, YtraBC[,1], type="n", xlab="Original values",
ylab="Transformed values", main="Box-Cox transformation")
for(j in 1:nla)
lines(y, YtraBC[,j], col=j)
for(j in 1:nla) {
text(y[16], YtraBC[22,j], paste0("la=", la[j]))
}
par(oldpar)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.