Learn R Programming

timetk (version 2.6.1)

box_cox_vec: Box Cox Transformation

Description

This is mainly a wrapper for the BoxCox transformation from the forecast R package. The box_cox_vec() function performs the transformation. The box_cox_inv_vec() inverts the transformation. The auto_lambda() helps in selecting the optimal lambda value.

Usage

box_cox_vec(x, lambda = "auto", silent = FALSE)

box_cox_inv_vec(x, lambda)

auto_lambda( x, method = c("guerrero", "loglik"), lambda_lower = -1, lambda_upper = 2 )

Arguments

x

A numeric vector.

lambda

The box cox transformation parameter. If set to "auto", performs automated lambda selection using auto_lambda().

silent

Whether or not to report the automated lambda selection as a message.

method

The method used for automatic lambda selection. Either "guerrero" or "loglik".

lambda_lower

A lower limit for automatic lambda selection

lambda_upper

An upper limit for automatic lambda selection

Details

The Box Cox transformation is a power transformation that is commonly used to reduce variance of a time series.

Automatic Lambda Selection

If desired, the lambda argument can be selected using auto_lambda(), a wrapper for the Forecast R Package's forecast::BoxCox.lambda() function. Use either of 2 methods:

  1. "guerrero" - Minimizes the non-seasonal variance

  2. "loglik" - Maximizes the log-likelihood of a linear model fit to x

References

See Also

Other common transformations to reduce variance: log(), log1p() and sqrt()

Examples

Run this code
# NOT RUN {
library(dplyr)
library(timetk)

d10_daily <- m4_daily %>% filter(id == "D10")

# --- VECTOR ----

value_bc <- box_cox_vec(d10_daily$value)
value    <- box_cox_inv_vec(value_bc, lambda = 1.25119350454964)

# --- MUTATE ----

m4_daily %>%
    group_by(id) %>%
    mutate(value_bc = box_cox_vec(value))

# }

Run the code above in your browser using DataLab