View source: R/parsnip-temporal_hierarchy.R
temporal_hierarchy | R Documentation |
temporal_hierarchy()
is a way to generate a specification of an Temporal Hierarchical Forecasting model
before fitting and allows the model to be created using
different packages. Currently the only package is thief
. Note this
function requires the thief
package to be installed.
temporal_hierarchy(
mode = "regression",
seasonal_period = NULL,
combination_method = NULL,
use_model = NULL
)
mode |
A single character string for the type of model. The only possible value for this model is "regression". |
seasonal_period |
A seasonal frequency. Uses "auto" by default. A character phrase of "auto" or time-based phrase of "2 weeks" can be used if a date or date-time variable is provided. See Fit Details below. |
combination_method |
Combination method of temporal hierarchies, taking one of the following values:
|
use_model |
Model used for forecasting each aggregation level:
|
Models can be created using the following engines:
"thief" (default) - Connects to thief::thief()
The standardized parameter names in modeltime
can be mapped to their original
names in each engine:
modeltime | thief::thief() |
combination_method | comb |
use_model | usemodel |
Other options can be set using set_engine()
.
thief (default engine)
The engine uses thief::thief()
.
Function Parameters:
#> function (y, m = frequency(y), h = m * 2, comb = c("struc", "mse", "ols", #> "bu", "shr", "sam"), usemodel = c("ets", "arima", "theta", "naive", #> "snaive"), forecastfunction = NULL, aggregatelist = NULL, ...)
Other options and argument can be set using set_engine()
.
Parameter Notes:
xreg
- This model is not set up to use exogenous regressors. Only univariate
models will be fit.
Date and Date-Time Variable
It's a requirement to have a date or date-time variable as a predictor.
The fit()
interface accepts date and date-time features and handles them internally.
fit(y ~ date)
Univariate:
For univariate analysis, you must include a date or date-time feature. Simply use:
Formula Interface (recommended): fit(y ~ date)
will ignore xreg's.
XY Interface: fit_xy(x = data[,"date"], y = data$y)
will ignore xreg's.
Multivariate (xregs, Exogenous Regressors)
This model is not set up for use with exogenous regressors.
For forecasting with temporal hierarchies see: Athanasopoulos G., Hyndman R.J., Kourentzes N., Petropoulos F. (2017) Forecasting with Temporal Hierarchies. European Journal of Operational research, 262(1), 60-74.
For combination operators see: Kourentzes N., Barrow B.K., Crone S.F. (2014) Neural network ensemble operators for time series forecasting. Expert Systems with Applications, 41(9), 4235-4244.
fit.model_spec()
, set_engine()
library(dplyr)
library(parsnip)
library(rsample)
library(timetk)
library(thief)
# Data
m750 <- m4_monthly %>% filter(id == "M750")
m750
# Split Data 80/20
splits <- initial_time_split(m750, prop = 0.8)
# ---- HIERARCHICAL ----
# Model Spec - The default parameters are all set
# to "auto" if none are provided
model_spec <- temporal_hierarchy() %>%
set_engine("thief")
# Fit Spec
model_fit <- model_spec %>%
fit(log(value) ~ date, data = training(splits))
model_fit
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.