This help topic is for R version 2.9.0. For the current version of R, try https://stat.ethz.ch/R-manual/R-patched/library/stats/html/decompose.html
decompose {stats}R Documentation

Classical Seasonal Decomposition by Moving Averages

Description

Decompose a time series into seasonal, trend and irregular components using moving averages. Deals with additive or multiplicative seasonal component.

Usage

decompose(x, type = c("additive", "multiplicative"), filter = NULL)

Arguments

x

A time series.

type

The type of seasonal component. Can be abbreviated.

filter

A vector of filter coefficients in reverse time order (as for AR or MA coefficients), used for filtering out the seasonal component. If NULL, a moving average with symmetric window is performed.

Details

The additive model used is:

Y_t = T_t + S_t + e_t

The multiplicative model used is:

Y_t = T_t\,S_t\, e_t

The function first determines the trend component using a moving average (if filter is NULL, a symmetric window with equal weights is used), and removes it from the time series. Then, the seasonal figure is computed by averaging, for each time unit, over all periods. The seasonal figure is then centered. Finally, the error component is determined by removing trend and seasonal figure (recycled as needed) from the orginal time series.

Value

An object of class "decomposed.ts" with following components:

seasonal

The seasonal component (i.e., the repeated seasonal figure)

figure

The estimated seasonal figure only

trend

The trend component

random

The remainder part

type

The value of type

Note

The function stl provides a much more sophisticated decomposition.

Author(s)

David Meyer David.Meyer@wu-wien.ac.at

References

M. Kendall and A. Stuart (1983) The Advanced Theory of Statistics, Vol.3, Griffin, 410–414.

See Also

stl

Examples

require(graphics)

m <- decompose(co2)
m$figure
plot(m)

## example taken from Kendall/Stuart
x <- c(-50, 175, 149, 214, 247, 237, 225, 329, 729, 809, 
       530, 489, 540, 457, 195, 176, 337, 239, 128, 102, 232, 429, 3, 
       98, 43, -141, -77, -13, 125, 361, -45, 184)
x <- ts(x, start = c(1951, 1), end = c(1958, 4), frequency = 4)
m <- decompose(x)
## seasonal figure: 6.25, 8.62, -8.84, -6.03
round(decompose(x)$figure / 10, 2)

[Package stats version 2.9.0 ]