stl {ts}R Documentation

Seasonal Decomposition of Time Series by Loess

Description

Decompose a time series into seasonal, trend and irregular components.

Usage

stl(x, s.window = NULL, s.degree = 0, t.window = NULL, t.degree = 1,
    robust = FALSE, na.action = na.fail)

Arguments

x A univariate time series to be decomposed. This should be an object of class "ts" with a frequency greater than one.
s.window Either the string "periodic" or the span (in lags) of the loess window for seasonal extraction, which should be odd. This has no default.
s.degree Degree of locally-fitted polynomial in seasonal extraction. Should be zero or one.
t.window The span (in lags) of the loess window for trend extraction, which should be odd. There is a reasonable default.
t.degree Degree of locally-fitted polynomial in trend extraction. Should be zero or one.
robust Should robust fitting be used in the loess procedure?
na.action Action on missing values.

Details

The seasonal component is found by loess smoothing the seasonal sub-series (the series of all January values, ...); if s.window = "periodic" smoothing is effectively replaced by taking the mean. The seasonal values are removed, and the remainder smoothed to find the trend. The overall level is removed from the seasonal component and added to the trend component. This process is iterated a few times. The remainder component is the residuals from the seasonal plus trend fit.

Value

An object of class "stl" with components

time.series a multiple time series with columns seasonal, trend and remainder.
weights the final robust weights (all one if fitting is not done robustly).
call the matched call.

Note

This is similar to but not identical to the stl function in S-PLUS. The remainder component given by S-PLUS is the sum of the trend and remainder series from this function.

Author(s)

B.D. Ripley; Fortran code by Cleveland et al. (1990) from `netlib'.

References

R. B. Cleveland, W. S. Cleveland, J.E. McRae, and I. Terpenning (1990). STL: A Seasonal-Trend Decomposition Procedure Based on Loess. Journal of Official Statistics, 6, 3–73.

See Also

loess in package `modreg' (which is not actually used in stl).

Examples

data(nottem)
plot(stl(nottem, "per"))
data(co2)
plot(stl(log(co2), s.window=21))
## linear trend, strict period.
plot(stl(log(co2), s.window="per", t.window=1000))