Replace Outliers & Missing Values in a Time Series
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.
ts_clean_vec(x, period = 1, lambda = NULL)
x |
A numeric vector. |
period |
A seasonal period to use during the transformation. If |
lambda |
A box cox transformation parameter. If set to |
Cleaning Outliers
Non-Seasonal (period = 1
): Uses stats::supsmu()
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
.
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()
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")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.