decreg {pastecs} | R Documentation

## Time series decomposition using a regression model

### Description

Providing values coming from a regression on the original series, a `tsd` object is created using the original series, the regression model and the residuals

### Usage

    decreg(x, xreg, type="additive")

### Arguments

`x` | a regular time series ('rts' under S+ and 'ts' under R)
`xreg` | a second regular time series or a vector of the same length as `x` with corresponding values from the regression model
`type` | the type of model, either `type="additive"` (by default), or `type="multiplicative"`

### Value

a 'tsd' object

### Author(s)

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

### References

Frontier, S., 1981. Méthodes statistiques. Masson, Paris. 246 pp.

Kendall, M., 1976. Time-series. Charles Griffin & Co Ltd. 197 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.

Sokal, R.R. & F.J. Rohlf, 1981. Biometry. Freeman & Co, San Francisco. 860 pp.

### See Also

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

### Examples

    data(marphy)
    density <- ts(marphy[, "Density"])
    plot(density)
    Time <- time(density)

    # Linear model to represent trend
    density.lin <- lm(density ~ Time)
    summary(density.lin)
    xreg <- predict(density.lin)
    lines(xreg, col=3)
    density.dec <- decreg(density, xreg)
    plot(density.dec, col=c(1, 3, 2), xlab="stations")

    # Order 2 polynomial to represent trend
    density.poly <- lm(density ~ Time + I(Time^2))
    summary(density.poly)
    xreg2 <- predict(density.poly)
    plot(density)
    lines(xreg2, col=3)
    density.dec2 <- decreg(density, xreg2)
    plot(density.dec2, col=c(1, 3, 2), xlab="stations")

    # Fit a sinusoidal model on seasonal (artificial) data
    tser <- ts(sin((1:100)/12*pi)+rnorm(100, sd=0.3), start=c(1998, 4),
            frequency=24)
    Time <- time(tser)
    tser.sin <- lm(tser ~ I(cos(2*pi*Time)) + I(sin(2*pi*Time)))
    summary(tser.sin)
    tser.reg <- predict(tser.sin)
    tser.dec <- decreg(tser, tser.reg)
    plot(tser.dec, col=c(1, 4), xlab="stations", stack=FALSE, resid=FALSE,
            lpos=c(0, 4))
    plot(tser.dec, col=c(1, 4, 2), xlab="stations")

    # One can also use nonlinear models (see 'nls')
    # or autoregressive models (see 'ar' and others in 'ts' library)

[Package pastecs version 1.3-2 Index]