decompose
Classical Seasonal Decomposition by Moving Averages
Decompose a time series into seasonal, trend and irregular components using moving averages. Deals with additive or multiplicative seasonal component.
 Keywords
 ts
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 original time series.
This only works well if x
covers an integer number of complete
periods.
Value

An object of class
 x
 The original series. (Only since R 2.14.0.)
 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
.
"decomposed.ts"
with following components:
Note
The function stl
provides a much more sophisticated
decomposition.
References
M. Kendall and A. Stuart (1983) The Advanced Theory of Statistics, Vol.3, Griffin. pp.\ifelse{latex}{\out{~}}{ } 410414.
See Also
Examples
library(stats)
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)