box_cox() returns a transformation of the input variable using a Box-Cox transformation. inv_box_cox() reverses the transformation.

box_cox(x, lambda)

inv_box_cox(x, lambda)

Arguments

x

a numeric vector.

lambda

a numeric value for the transformation parameter.

Value

a transformed numeric vector of the same length as x.

Details

The Box-Cox transformation is given by $$f_\lambda(x) =\frac{x^\lambda - 1}{\lambda}$$ if \(\lambda\ne0\). For \(\lambda=0\), $$f_0(x)=\log(x)$$.

References

Box, G. E. P. and Cox, D. R. (1964) An analysis of transformations. JRSS B 26 211–246.

Author

Rob J Hyndman & Mitchell O'Hara-Wild

Examples

library(tsibble)
library(dplyr)
airmiles %>% 
  as_tsibble() %>% 
  mutate(box_cox = box_cox(value, lambda = 0.3))
#> # A tsibble: 24 x 3 [1Y]
#>    index value box_cox
#>    <dbl> <dbl>   <dbl>
#>  1  1937   412    17.0
#>  2  1938   480    17.9
#>  3  1939   683    20.3
#>  4  1940  1052    23.6
#>  5  1941  1385    25.9
#>  6  1942  1418    26.1
#>  7  1943  1634    27.3
#>  8  1944  2178    30.1
#>  9  1945  3362    34.8
#> 10  1946  5948    41.9
#> # ℹ 14 more rows