Bayesian exponential smoothing with a nonlinear global trend (LGT/SGT), Student-t errors, and optional
heteroscedasticity, fitted via MCMC. The seasonal period is taken from the frequency of the series.
Calls Rlgt::rlgt() from package Rlgt.
Dictionary
This mlr3::Learner can be instantiated via the dictionary mlr3::mlr_learners or with the associated sugar function mlr3::lrn():
Meta Information
Task type: “fcst”
Predict Types: “response”, “quantiles”
Feature Types: “logical”, “integer”, “numeric”
Required Packages: mlr3, mlr3forecast, Rlgt
Parameters
| Id | Type | Default | Levels | Range |
| seasonality | integer | 1 | \([1, \infty)\) | |
| seasonality2 | integer | 1 | \([1, \infty)\) | |
| seasonality.type | character | multiplicative | multiplicative, generalized | - |
| error.size.method | character | std | std, innov | - |
| level.method | character | HW | HW, seasAvg, HW_sAvg | - |
| method | character | Gibbs | Gibbs, Stan | - |
| homoscedastic | logical | FALSE | TRUE, FALSE | - |
| control | untyped | NULL | - | |
| verbose | logical | FALSE | TRUE, FALSE | - |
| NUM_OF_TRIALS | integer | 2000 | \([1, \infty)\) |
References
Smyl S, Bergmeir C, Wibowo E, Ng TW, Long X, Dokumentov A, Schmidt D (2025). Rlgt: Bayesian Exponential Smoothing Models with Trend Modifications. R package version 0.2-3, https://github.com/cbergmeir/Rlgt.
See also
Chapter in the mlr3book: https://mlr3book.mlr-org.com/chapters/chapter2/data_and_basic_modeling.html#sec-learners
Package mlr3learners for a solid collection of essential learners.
Package mlr3extralearners for more learners.
as.data.table(mlr_learners)for a table of available Learners in the running session (depending on the loaded packages).mlr3pipelines to combine learners with pre- and postprocessing steps.
Package mlr3viz for some generic visualizations.
Extension packages for additional task types:
mlr3proba for probabilistic supervised regression and survival analysis.
mlr3cluster for unsupervised clustering.
mlr3tuning for tuning of hyperparameters, mlr3tuningspaces for established default tuning spaces.
Other Learner:
LearnerFcst,
mlr_learners_fcst.adam,
mlr_learners_fcst.arfima,
mlr_learners_fcst.arima,
mlr_learners_fcst.auto_adam,
mlr_learners_fcst.auto_arima,
mlr_learners_fcst.auto_ces,
mlr_learners_fcst.auto_gum,
mlr_learners_fcst.auto_msarima,
mlr_learners_fcst.auto_ssarima,
mlr_learners_fcst.bagged,
mlr_learners_fcst.bats,
mlr_learners_fcst.ces,
mlr_learners_fcst.croston,
mlr_learners_fcst.elm,
mlr_learners_fcst.es,
mlr_learners_fcst.ets,
mlr_learners_fcst.gum,
mlr_learners_fcst.holt_winters,
mlr_learners_fcst.mean,
mlr_learners_fcst.mlp,
mlr_learners_fcst.msarima,
mlr_learners_fcst.nnetar,
mlr_learners_fcst.prophet,
mlr_learners_fcst.random_walk,
mlr_learners_fcst.sma,
mlr_learners_fcst.spline,
mlr_learners_fcst.ssarima,
mlr_learners_fcst.stlm,
mlr_learners_fcst.struct_ts,
mlr_learners_fcst.tbats,
mlr_learners_fcst.theta,
mlr_learners_fcst.tscount,
mlr_learners_fcst.tslm
Super classes
mlr3::Learner -> mlr3::LearnerRegr -> LearnerFcst -> LearnerFcstForecast -> LearnerFcstRlgt
Methods
Inherited methods
mlr3::Learner$base_learner()mlr3::Learner$configure()mlr3::Learner$encapsulate()mlr3::Learner$format()mlr3::Learner$help()mlr3::Learner$predict()mlr3::Learner$predict_newdata()mlr3::Learner$print()mlr3::Learner$reset()mlr3::Learner$selected_features()mlr3::Learner$train()mlr3::LearnerRegr$predict_newdata_fast()
Examples
# Define the Learner and set parameter values
learner = lrn("fcst.rlgt")
print(learner)
#>
#> ── <LearnerFcstRlgt> (fcst.rlgt): Local and Global Trend ───────────────────────
#> • Model: -
#> • Parameters: list()
#> • Packages: mlr3, mlr3forecast, and Rlgt
#> • Predict Types: [response] and quantiles
#> • Feature Types: logical, integer, and numeric
#> • Encapsulation: none (fallback: -)
#> • Properties: exogenous and featureless
#> • Other settings: use_weights = 'error', predict_raw = 'FALSE'
# Define a Task
task = tsk("airpassengers")
# Create train and test set
ids = partition(task)
# Train the learner on the training ids
learner$train(task, row_ids = ids$train)
# Print the model
print(learner$model)
#> $model
#> $n.samples
#> [1] 5000
#>
#> $sigma2
#> [1] 0.8060902
#>
#> $xi2
#> [1] 0.8740737
#>
#> $phi
#> [1] 0.4827586
#>
#> $chi2
#> [1] 8.437601
#>
#> $chi2.lambda2
#> [1] 0
#>
#> $w
#> [1] 0
#>
#> $alpha
#> [1] 0.8696758
#>
#> $beta
#> [1] 0.7
#>
#> $zeta
#> [1] 0.5979935
#>
#> $rho
#> [1] 0.01724138
#>
#> $tau
#> [1] 0.3448276
#>
#> $nu
#> [1] 8.84
#>
#> $l1
#> [1] 0
#>
#> $b1
#> [1] 0
#>
#> $lt
#> [1] 330.698
#>
#> $bt
#> [1] 0
#>
#> $et
#> [1] -2.355992
#>
#> $log.s
#> [1] 0.005258382
#>
#> $y.on.l
#> [1] 0.01335897
#>
#> $L
#> [1] 0
#>
#> $log.s1
#> [1] -0.00432337
#>
#> $w.s
#> [1] 0
#>
#> $l2.log.s
#> [1] 0.8105942
#>
#> $t2.log.s
#> [1] 0.01556474
#>
#> $s.ix
#> [1] 7
#>
#> $m
#> [1] 12
#>
#> $y
#> [1] 200
#>
#> $mu.hat
#> [1] 205.9295
#>
#> $method
#> [1] "Gibbs"
#>
#> $x
#> [1] 200
#>
#>
#> $row_ids
#> [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
#> [59] 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
#>
#> $max_index
#> [1] "1956-12-01"
#>
# Importance method
if ("importance" %in% learner$properties) print(learner$importance())
# Make predictions for the test rows
predictions = learner$predict(task, row_ids = ids$test)
# Score the predictions
predictions$score()
#> regr.mse
#> 1106.967