Learn R Programming

TeachingDemos (version 1.2)

bct: Box-Cox Transforms

Description

Computes the Box-Cox transform of the data for a given value of lambda. Includes the scaling factor.

Usage

bct(y, lambda)

Arguments

y
Vector of data to be transformed.
lambda
Scalar exponent for transform (1 is linear, 0 is log).

Value

  • A vector of the same length as y with the corresponding transformed values.

Details

bct computes the Box-Cox family of transforms: y = (y^lambda - 1)/(lambda*gm^(lambda-1)), where gm is the geometric mean of the y's. returns log(y)*gm when lambda equals 0.

See Also

vis.boxcox, vis.boxcoxu, boxcox in package MASS, other implementations in various packages

Examples

Run this code
y <- rlnorm(500, 3, 2)
par(mfrow=c(2,2))
qqnorm(y)
qqnorm(bct(y,1/2))
qqnorm(bct(y,0))
hist(bct(y,0))


## The function is currently defined as
function(y,lambda){

  gm <- exp( mean( log(y) ) )

  if(lambda==0) return( log(y)*gm )
  
  yt <- (y^lambda - 1)/( lambda * gm^(lambda-1) )
  return(yt)
  }

Run the code above in your browser using DataLab