tsd {pastecs} | R Documentation

## Decomposition of one or several regular time series using various methods

### Description

Use a decomposition method to split the series into two or more components. Decomposition methods are either series filtering/smoothing (difference, average, median, evf), deseasoning (loess) or model-based decomposition (reg, i.e., regression).

### Usage

    tsd(x, specs=NULL, method="loess", type="additive", ...)
    ## S3 method for class 'tsd':
    summary(tsdobj)
    ## S3 method for class 'tsd':
    plot(tsdobj, series=1, stack=TRUE, resid=TRUE,
            labels, leg=TRUE, lpos=c(0, 0), ...)
    ## S3 method for class 'tsd':
    extract(tsdobj, n, series=NULL, components=NULL)
    ## S3 method for class 'tsd':
    specs(tsdobj)

### Arguments

`x` | an univariate or multivariate regular time series ('rts' in Splus or 'ts' in R) to be decomposed
`specs` | specifications are collected from a 'tsd' object, using the `specs` method. This allows for reusing parameters issued from a previous similar analysis
`method` | the method to use to decompose the time series. Currently, possible values are: `"diff"`, `"average"`, `"median"`, `"evf"`, `"reg"`, `"loess"` (by default) or `"census"`. The corresponding function `decXXXX()` is applied to each of the series in `x`
`type` | the type of model to use: either `"additive"` (by default) or `"multiplicative"`. In the additive model, all components must be added to reconstruct the initial series. In the multiplicative model, they must be multiplied (one components has the same unit as the original series, and the other ones are dimensionless multiplicative factors)
`...` | (1) for `tsd()`: further arguments to pass to the corresponding `decXXXX()` function. (2) for `plot()`: further graphical arguments
`tsdobj` | a 'tsd' object as returned by the function `tsd()`, or any of the `decXXXX()` functions
`series` | (1) for `plot()`: the series to plot. By default, `series=1`, the first (or possibly unique) series in the 'tsd' object is plotted. (2) for `extract`: the name or the index of the series to extract. If `series` is provided, then `n` is ignored. By default, `series=NULL`. It is also possible to use negative indices. In this case, all series are extracted, except those ones
`stack` | graphs of each component are either stacked (`stack=TRUE`, by default), or superposed on the same graph `stack=FALSE`
`resid` | do we have to plot also the "residuals" components (`resid=TRUE`, by default) or not? Usually, in a stacked graph, you would like to plot the residuals, while in a superposed graph, you would not
`labels` | the labels to use for all y-axes in a stacked graph, or in the legend for a superposed graph. By default, the names of the components ("trend", "seasonal", "deseasoned", "filtered", "residuals", ...) are used
`leg` | only used when `stack=FALSE`. Do we plot a legend (`leg=TRUE` or not?
`lpos` | position of the upper-left corner of the legend box in the graph coordinates (x,y). By default, `leg=c(0,0)`
`n` | the number of series to extract (from series 1 to series n). By default, n equals the number of series in the 'tsd' object. If both `series` and `components` arguments are NULL, all series and components are extracted and this method has exactly the same effect as `tseries`
`components` | the names or indices of the components to extract. If `components=NULL` (by default), then all components of the selected series are extracted. It is also possible to specify negative indices. In this case, all components are extracted, except those ones

### Details

To eliminate trend from a series, use "diff" or use "loess" with `trend=TRUE`. If you know the shape of the trend (linear, exponential, periodic, etc.), you can also use it with the "reg" (regression) method. To eliminate or extract seasonal components, you can use "loess" if the seasonal component is additive, or "census" if it is multiplicative. You can also use "average" with argument `order="periodic"` and with either an additive or a multiplicative model, although the later method is often less powerful than "loess" or "census". If you want to extract a seasonal cycle with a given shape (for instance, a sinusoid), use the "reg" method with a fitted sinusoidal equation. If you want to identify levels in the series, use the "median" method. To smooth the series, you can use preferably the "evf" (eigenvector filtering), or the "average" methods, but you can also use "median". To extract most important components from the series (no matter if they are cycles -seasonal or not-, or long-term trends), you should use the "evf" method. For more information on each of these methods, see online help of the corresponding `decXXXX()` functions.

### Value

An object of type 'tsd' is returned. It has methods `print()`, `summary()`, `plot()`, `extract()` and `specs()`.

### Note

If you have to decompose a single time series, you could also use the corresponding `decXXXX()` function directly. In the case of a multivariate regular time series, `tsd()` is more convenient because it decompose all times series of a set at once!

### Author(s)

Frédéric Ibanez (ibanez@obs-vlfr.fr), Philippe Grosjean (phgrosjean@sciviews.org)

### References

Kendall, M., 1976. Time-series. Charles Griffin & Co Ltd. 197 pp.

Laloire, J.C., 1972. Méthodes du traitement des chroniques. Dunod, Paris, 194 pp.

Legendre, L. & P. Legendre, 1984. Ecologie numérique. Tome 2: La structure des données écologiques. Masson, Paris. 335 pp.

Malinvaud, E., 1978. Méthodes statistiques de l'économétrie. Dunod, Paris. 846 pp.

Philips, L. & R. Blomme, 1973. Analyse chronologique. Université Catholique de Louvain. Vander ed. 339 pp.

### See Also

`tseries`, `decdiff`, `decaverage`, `decmedian`, `decevf`, `decreg`, `decloess`, `deccensus`

### Examples

    data(releve)
    # Regulate the series and extract them as a time series object
    rel.regy <- regul(releve$Day, releve[3:8], xmin=6, n=87, units="daystoyears",
            frequency=24, tol=2.2, methods="linear", datemin="21/03/1989",
            dateformat="d/m/Y")
    rel.ts <- tseries(rel.regy)

    # Decompose all series in the set with the "loess" method
    rel.dec <- tsd(rel.ts, method="loess", s.window=13, trend=FALSE)
    rel.dec
    plot(rel.dec, series=5, col=1:3)    # An plot series 5

    # Extract "deseasoned" components
    rel.des <- extract(rel.dec, series=3:6, components="deseasoned")
    rel.des[1:10,]

    # Further decompose these components with a moving average
    rel.des.dec <- tsd(rel.des, method="average", order=2, times=10)
    plot(rel.des.dec, series=3, col=c(2, 4, 6))
    # In this case, a superposed graph is more appropriate:
    plot(rel.des.dec, series=3, col=c(2,4), stack=FALSE, resid=FALSE,
            labels=c("without season cycle", "trend"), lpos=c(0, 55000))
    # Extract residuals from the latter decomposition
    rel.res2 <- extract(rel.des.dec, components="residuals")

[Package pastecs version 1.3-4 Index]