boxcox | R Documentation |
Functions related with the Box-Cox family of transformations.
Density and random generation for the Box-Cox transformed normal
distribution with mean
equal to mean
and standard deviation equal to sd
, in the normal scale.
rboxcox(n, lambda, lambda2 = NULL, mean = 0, sd = 1)
dboxcox(x, lambda, lambda2 = NULL, mean = 0, sd = 1)
lambda |
numerical value(s) for the transformation parameter
|
lambda2 |
logical or numerical value(s) of the additional transformation
(see DETAILS below). Defaults to |
n |
number of observations to be generated. |
x |
a vector of quantiles ( |
mean |
a vector of mean values at the normal scale. |
sd |
a vector of standard deviations at the normal scale. |
Denote Y
the variable at the original scale and Y'
the
transformed variable. The Box-Cox transformation is defined by:
Y' = \left\{ \begin{array}{ll}
log(Y)
\mbox{ , if $\lambda = 0$} \cr
\frac{Y^\lambda - 1}{\lambda} \mbox{ , otherwise}
\end{array} \right.
.
An additional shifting parameter \lambda_2
can be
included in which case the transformation is given by:
Y' = \left\{
\begin{array}{ll}
log(Y + \lambda_2)
\mbox{ , $\lambda = 0$ } \cr
\frac{(Y + \lambda_2)^\lambda - 1}{\lambda} \mbox{ , otherwise}
\end{array} \right.
.
The function rboxcox
samples Y'
from the normal distribution using
the function rnorm
and backtransform the values according to the
equations above to obtain values of Y
.
If necessary the back-transformation truncates the values such that
Y' \geq \frac{1}{\lambda}
results in
Y = 0
in the original scale.
Increasing the value of the mean and/or reducing the variance might help to avoid truncation.
The functions returns the following results:
rboxcox |
a vector of random deviates. |
dboxcox |
a vector of densities. |
Paulo Justiniano Ribeiro Jr. paulojus@leg.ufpr.br,
Peter J. Diggle p.diggle@lancaster.ac.uk.
Box, G.E.P. and Cox, D.R.(1964) An analysis of transformations. JRSS B 26:211–246.
The parameter estimation function is boxcoxfit
.
Other packages has BoxCox related functions such as boxcox
in the package MASS and
the function box.cox
in the package ‘car’.
## Simulating data
simul <- rboxcox(100, lambda=0.5, mean=10, sd=2)
##
## Comparing models with different lambdas,
## zero means and unit variances
curve(dboxcox(x, lambda=-1), 0, 8)
for(lambda in seq(-.5, 1.5, by=0.5))
curve(dboxcox(x, lambda), 0, 8, add = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.