step_ts_impute creates a specification of a recipe
step that will impute time series data.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
One or more selector functions to choose which
variables are affected by the step. See
A seasonal period to use during the transformation. If
A box cox transformation parameter. If set to
Not used by this step since no new variables are created.
A logical to indicate if the quantities for preprocessing have been estimated.
A named numeric vector of lambdas. This is
A logical. Should the step be skipped when the recipe
is baked by
A character string that is unique to this step to identify it.
step_ts_impute() function is designed specifically to handle time series
Imputation using Linear Interpolation
Three circumstances cause strictly linear interpolation:
Period is 1: With
period = 1, a seasonality cannot be interpreted and therefore linear is used.
Number of Non-Missing Values is less than 2-Periods: Insufficient values exist to detect seasonality.
Number of Total Values is less than 3-Periods: Insufficient values exist to detect seasonality.
Seasonal Imputation using Linear Interpolation
For seasonal series with
period > 1, a robust Seasonal Trend Loess (STL) decomposition is first computed.
Then a linear interpolation is applied to the seasonally adjusted data, and
the seasonal component is added back.
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.
An updated version of
recipe with the new step
added to the sequence of existing steps (if any). For the
tidy method, a tibble with columns
selectors or variables selected) and
Time Series Analysis:
Diffs & Lags
Recipe Setup and Application:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
library(tidyverse) library(tidyquant) library(recipes) library(timetk) # Get missing values FANG_wide <- FANG %>% select(symbol, date, adjusted) %>% pivot_wider(names_from = symbol, values_from = adjusted) %>% pad_by_time() FANG_wide # Apply Imputation recipe_box_cox <- recipe(~ ., data = FANG_wide) %>% step_ts_impute(FB, AMZN, NFLX, GOOG, period = 252, lambda = "auto") %>% prep() recipe_box_cox %>% bake(FANG_wide) # Lambda parameter used during imputation process recipe_box_cox %>% tidy(1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.