This learner fits first harmonics in a Fourier expansion to one
or more time series. Fourier decomposition relies on
fourier, and the time series is fit using
tslm. For further details on working with harmonic
regression for time-series with package forecast, consider consulting
Hyndman et al. (2021)
) and
Hyndman and Khandakar (2008)
).
A learner object inheriting from Lrnr_base with
methods for training and prediction. For a full list of learner
functionality, see the complete documentation of Lrnr_base.
Hyndman R, Athanasopoulos G, Bergmeir C, Caceres G, Chhay L, O'Hara-Wild M, Petropoulos F, Razbash S, Wang E, Yasmeen F (2021).
forecast: Forecasting functions for time series and linear models.
R package version 8.14, https://pkg.robjhyndman.com/forecast/.
Hyndman RJ, Khandakar Y (2008).
“Automatic time series forecasting: the forecast package for R.”
Journal of Statistical Software, 26(3), 1--22.
https://www.jstatsoft.org/article/view/v027i03.
Other Learners:
Custom_chain,
Lrnr_arima,
Lrnr_bartMachine,
Lrnr_base,
Lrnr_bayesglm,
Lrnr_bilstm,
Lrnr_caret,
Lrnr_cv_selector,
Lrnr_cv,
Lrnr_dbarts,
Lrnr_define_interactions,
Lrnr_density_discretize,
Lrnr_density_hse,
Lrnr_density_semiparametric,
Lrnr_earth,
Lrnr_expSmooth,
Lrnr_gam,
Lrnr_ga,
Lrnr_gbm,
Lrnr_glm_fast,
Lrnr_glmnet,
Lrnr_glm,
Lrnr_grf,
Lrnr_gru_keras,
Lrnr_gts,
Lrnr_h2o_grid,
Lrnr_hal9001,
Lrnr_haldensify,
Lrnr_hts,
Lrnr_independent_binomial,
Lrnr_lightgbm,
Lrnr_lstm_keras,
Lrnr_mean,
Lrnr_multiple_ts,
Lrnr_multivariate,
Lrnr_nnet,
Lrnr_nnls,
Lrnr_optim,
Lrnr_pca,
Lrnr_pkg_SuperLearner,
Lrnr_polspline,
Lrnr_pooled_hazards,
Lrnr_randomForest,
Lrnr_ranger,
Lrnr_revere_task,
Lrnr_rpart,
Lrnr_rugarch,
Lrnr_screener_augment,
Lrnr_screener_coefs,
Lrnr_screener_correlation,
Lrnr_screener_importance,
Lrnr_sl,
Lrnr_solnp_density,
Lrnr_solnp,
Lrnr_stratified,
Lrnr_subset_covariates,
Lrnr_svm,
Lrnr_tsDyn,
Lrnr_ts_weights,
Lrnr_xgboost,
Pipeline,
Stack,
define_h2o_X(),
undocumented_learner
library(origami)
#> origami v1.0.5: Generalized Framework for Cross-Validation
library(data.table)
data(bsds)
# make folds appropriate for time-series cross-validation
folds <- make_folds(bsds,
fold_fun = folds_rolling_window, window_size = 500,
validation_size = 100, gap = 0, batch = 50
)
# build task by passing in external folds structure
task <- sl3_Task$new(
data = bsds,
folds = folds,
covariates = c(
"weekday", "temp"
),
outcome = "cnt"
)
# create tasks for taining and validation
train_task <- training(task, fold = task$folds[[1]])
valid_task <- validation(task, fold = task$folds[[1]])
# instantiate learner, then fit and predict
HarReg_learner <- Lrnr_HarmonicReg$new(K = 7, freq = 105)
#> Registered S3 method overwritten by 'quantmod':
#> method from
#> as.zoo.data.frame zoo
HarReg_fit <- HarReg_learner$train(train_task)
HarReg_preds <- HarReg_fit$predict(valid_task)