R: Replace Outliers & Missing Values in a Time Series

ts_clean_vec {timetk} | R Documentation

## Replace Outliers & Missing Values in a Time Series

### Description

This is mainly a wrapper for the outlier cleaning function, `tsclean()`, from the `forecast` R package. The `ts_clean_vec()` function includes arguments for applying seasonality to numeric vector (non-`ts`) via the `period` argument.

### Usage

    ts_clean_vec(x, period = 1, lambda = NULL)

### Arguments

`x` | A numeric vector.
`period` | A seasonal period to use during the transformation. If `period = 1`, seasonality is not included and `supsmu()` is used to fit a trend. If `period > 1`, a robust STL decomposition is first performed and a linear interpolation is applied to the seasonally adjusted data.
`lambda` | A box cox transformation parameter. If set to `"auto"`, performs automated lambda selection.

### Details

Cleaning Outliers

1. Non-Seasonal (`period = 1`): Uses `stats::supsmu()`

2. Seasonal (`period > 1`): Uses `forecast::mstl()` with `robust = TRUE` (robust STL decomposition) for seasonal series.

To estimate missing values and outlier replacements, linear interpolation is used on the (possibly seasonally adjusted) series. See `forecast::tsoutliers()` for the outlier detection method.

Box Cox Transformation

In many circumstances, a Box Cox transformation can help. Especially if the series is multiplicative meaning the variance grows exponentially. A Box Cox transformation can be automated by setting `lambda = "auto"` or can be specified by setting `lambda = numeric value`.

### References

- Forecast R Package

- Forecasting Principles & Practices: Dealing with missing values and outliers

### See Also

- Box Cox Transformation: `box_cox_vec()`

- Lag Transformation: `lag_vec()`

- Differencing Transformation: `diff_vec()`

- Rolling Window Transformation: `slidify_vec()`

- Loess Smoothing Transformation: `smooth_vec()`

- Fourier Series: `fourier_vec()`

- Missing Value Imputation for Time Series: `ts_impute_vec()`

- Outlier Cleaning for Time Series: `ts_clean_vec()`

### Examples

    library(dplyr)
    library(timetk)

    # --- VECTOR ----

    values <- c(1,2,3, 4*2, 5,6,7, NA, 9,10,11, 12*2)
    values

    # Linear interpolation + Outlier Cleansing
    ts_clean_vec(values, period = 1, lambda = NULL)

    # Seasonal Interpolation: set period = 4
    ts_clean_vec(values, period = 4, lambda = NULL)

    # Seasonal Interpolation with Box Cox Transformation (internal)
    ts_clean_vec(values, period = 4, lambda = "auto")

[Package timetk version 2.6.1 Index]