Forecasts of STL objects are obtained by applying a non-seasonal forecasting
model to the seasonally adjusted data and re-seasonalizing using the last
year of the seasonal component. stlm takes a time series y, applies an STL decomposition, and
models the seasonally adjusted data using the model passed as
modelfunction or specified using method. It returns an object
that includes the original STL decomposition and a time series model fitted
to the seasonally adjusted data. This object can be passed to the
forecast.stlm for forecasting.
stlm(
y,
s.window = 7 + 4 * seq(6),
t.window = NULL,
robust = FALSE,
method = c("ets", "arima"),
modelfunction = NULL,
model = NULL,
etsmodel = "ZZN",
lambda = NULL,
biasadj = FALSE,
xreg = NULL,
allow.multiplicative.trend = FALSE,
x = y,
...
)An object of class stlm.
a numeric vector or univariate time series of class ts
Either the character string "periodic" or the span (in
lags) of the loess window for seasonal extraction.
A number to control the smoothness of the trend. See
stats::stl() for details.
If TRUE, robust fitting will used in the loess
procedure within stats::stl().
Method to use for forecasting the seasonally adjusted series.
An alternative way of specifying the function for
modelling the seasonally adjusted series. If modelfunction is not
NULL, then method is ignored. Otherwise method is used
to specify the time series model to be used.
Output from a previous call to stlm. If a stlm
model is passed, this same model is fitted to y without re-estimating any
parameters.
The ets model specification passed to
ets(). By default it allows any non-seasonal model. If
method != "ets", this argument is ignored.
Box-Cox transformation parameter. If lambda = "auto",
then a transformation is automatically selected using BoxCox.lambda.
The transformation is ignored if NULL. Otherwise,
data transformed before model is estimated.
Use adjusted back-transformed mean for Box-Cox
transformations. If transformed data is used to produce forecasts and fitted
values, a regular back transformation will result in median forecasts. If
biasadj is TRUE, an adjustment will be made to produce mean forecasts
and fitted values.
Historical regressors to be used in
auto.arima() when method = "arima".
If TRUE, then ETS models with
multiplicative trends are allowed. Otherwise, only additive or no trend ETS
models are permitted.
Deprecated. Included for backwards compatibility.
Other arguments passed to modelfunction.
Rob J Hyndman
The time series model for the seasonally adjusted data can be specified in
stlm using either method or modelfunction. The
method argument provides a shorthand way of specifying
modelfunction for a few special cases. More generally,
modelfunction can be any function with first argument a ts
object, that returns an object that can be passed to forecast().
For example, modelfunction = ar uses the ar() function
for modelling the seasonally adjusted series.
stats::stl(), ets(), Arima().
tsmod <- stlm(USAccDeaths, modelfunction = ar)
forecast(tsmod, h = 36) |> autoplot()
decomp <- stl(USAccDeaths, s.window = "periodic")
forecast(decomp) |> autoplot()
Run the code above in your browser using DataLab