Learn R Programming

wq (version 0.2-2)

decompTs: Decompose a time series

Description

The function decomposes a time series into a long-term mean, annual, seasonal and "events" component. The decomposition can be multiplicative or additive.

Usage

decompTs(x, startyr, endyr, event = TRUE, type = c("mult", "add"))

Arguments

Value

A monthly time series matrix with the following individual time series:originaloriginal time seriesgrandmeanconstant series equal to the long-term meanannualannual mean seriesseasonalrepeating seasonal componenteventsoptionally, the residual or "events" series

Rdversion

1.1

Details

A multiplicative decomposition will typically be useful for a biological community- or population-related variable (e.g., chlorophyll-a) that experiences exponential changes in time and is approximately lognormal, whereas an additive deomposition is more suitable for a normal variable. Aside from the long-term mean, each component of a multiplicative decomposition will average 1, whereas each component of an additive decomposition will average 0. The rationale for this simple approach to decomposing a time series, with examples of its application, is given by Cloern and Jassby (2009).

If event = TRUE, the seasonal component represents a recurring monthly pattern and the events component a residual series. Otherwise, the seasonal component becomes the residual series.

Seasonal patterns that change systematically over time can be investigated by applying the function to a rolling time window by changing startyr and endyr.

References

Cloern, J.E. and Jassby, A.D. (2009) Patterns and scales of phytoplankton variability in estuarine-coastal ecosystems. Estuaries and Coasts DOI 10.1007/s12237-009-9195-3.

Examples

Run this code
# Apply the function to a matrix time series, producing a list of decompositions
ans <- vector('list', ncol(sfbayChla))
names(ans) <- colnames(sfbayChla)
for(i in seq(along = names(ans)))
	ans[[i]] <- decompTs(sfbayChla[, i])

# A quick plot for a time series decomposiiton
plot(ans[[7]], nc = 1, main = paste(names(ans)[7], "Chl-a decomposition"))

Run the code above in your browser using DataLab