Forecasts of STL objects are obtained by applying a non-seasonal forecasting method to the seasonally adjusted data and re-seasonalizing using the last year of the seasonal component.
Usage
# S3 method for class 'stl'
forecast(
object,
method = c("ets", "arima", "naive", "rwdrift"),
etsmodel = "ZZN",
forecastfunction = NULL,
h = frequency(object$time.series) * 2,
level = c(80, 95),
fan = FALSE,
lambda = NULL,
biasadj = NULL,
xreg = NULL,
newxreg = NULL,
allow.multiplicative.trend = FALSE,
...
)
stlm(
y,
s.window = 7 + 4 * seq(6),
robust = FALSE,
method = c("ets", "arima"),
modelfunction = NULL,
model = NULL,
etsmodel = "ZZN",
lambda = NULL,
biasadj = FALSE,
xreg = NULL,
allow.multiplicative.trend = FALSE,
x = y,
...
)
# S3 method for class 'stlm'
forecast(
object,
h = 2 * object$m,
level = c(80, 95),
fan = FALSE,
lambda = object$lambda,
biasadj = NULL,
newxreg = NULL,
allow.multiplicative.trend = FALSE,
...
)
stlf(
y,
h = frequency(x) * 2,
s.window = 7 + 4 * seq(6),
t.window = NULL,
robust = FALSE,
lambda = NULL,
biasadj = FALSE,
x = y,
...
)Arguments
- object
An object of class
stlorstlm. Usually the result of a call tostats::stl()orstlm.- method
Method to use for forecasting the seasonally adjusted series.
- etsmodel
The ets model specification passed to
ets(). By default it allows any non-seasonal model. Ifmethod != "ets", this argument is ignored.- forecastfunction
An alternative way of specifying the function for forecasting the seasonally adjusted series. If
forecastfunctionis notNULL, thenmethodis ignored. Otherwisemethodis used to specify the forecasting method to be used.- h
Number of periods for forecasting. If
xregis used,his ignored and the number of forecast periods is set to the number of rows ofxreg.- level
Confidence levels for prediction intervals.
- fan
If
TRUE,levelis set toseq(51, 99, by = 3). This is suitable for fan plots.- lambda
Box-Cox transformation parameter. If
lambda = "auto", then a transformation is automatically selected usingBoxCox.lambda. The transformation is ignored if NULL. Otherwise, data transformed before model is estimated.- biasadj
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.- xreg
Historical regressors to be used in
auto.arima()whenmethod = "arima".- newxreg
Future regressors to be used in
forecast.Arima().- allow.multiplicative.trend
If
TRUE, then ETS models with multiplicative trends are allowed. Otherwise, only additive or no trend ETS models are permitted.- ...
Other arguments passed to
forecast.stl,modelfunctionorforecastfunction.- y
a numeric vector or univariate time series of class
ts- s.window
Either the character string
"periodic"or the span (in lags) of the loess window for seasonal extraction.- robust
If
TRUE, robust fitting will used in the loess procedure withinstats::stl().- modelfunction
An alternative way of specifying the function for modelling the seasonally adjusted series. If
modelfunctionis notNULL, thenmethodis ignored. Otherwisemethodis used to specify the time series model to be used.- model
Output from a previous call to
stlm. If astlmmodel is passed, this same model is fitted to y without re-estimating any parameters.- x
Deprecated. Included for backwards compatibility.
- t.window
A number to control the smoothness of the trend. See
stats::stl()for details.
Value
stlm returns an object of class stlm. The other
functions return objects of class forecast.
There are many methods for working with forecast() objects
including summary to obtain and print a summary of the results, while
plot produces a plot of the forecasts and prediction intervals. The
generic accessor functions fitted.values and residuals extract
useful features.
Details
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.
forecast.stlm forecasts the seasonally adjusted data, then
re-seasonalizes the results by adding back the last year of the estimated
seasonal component.
stlf combines stlm and forecast.stlm. It takes a
ts argument, applies an STL decomposition, models the seasonally
adjusted data, reseasonalizes, and returns the forecasts. However, it allows
more general forecasting methods to be specified via
forecastfunction.
forecast.stl is similar to stlf except that it takes the STL
decomposition as the first argument, instead of the time series.
Note that the prediction intervals ignore the uncertainty associated with the seasonal component. They are computed using the prediction intervals from the seasonally adjusted series, which are then reseasonalized using the last year of the seasonal component. The uncertainty in the seasonal component is ignored.
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, forecastfunction = ar uses the ar() function
for modelling the seasonally adjusted series.
The forecasting method for the seasonally adjusted data can be specified in
stlf and forecast.stl using either method or
forecastfunction. The method argument provides a shorthand way
of specifying forecastfunction for a few special cases. More
generally, forecastfunction can be any function with first argument a
ts object, and other h and level, which returns an
object of class forecast(). For example,
forecastfunction = thetaf uses the thetaf() function for
forecasting the seasonally adjusted series.



