# autossa: Group elementary series using periodogram In Rssa: A Collection of Methods for Singular Spectrum Analysis

## Description

Group elementary components automatically using their frequency contributions

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10``` ``` ## S3 method for class '1d.ssa' grouping.auto.pgram(x, groups, base = c("series", "eigen", "factor"), freq.bins = 2, threshold = 0, method = c("constant", "linear"), ..., drop = TRUE) ## S3 method for class 'grouping.auto.pgram' plot(x, superpose, order, ...) ```

## Arguments

 `x` SSA object `groups` indices of elementary components for grouping `base` input for periodogram: elementary reconstructed series, eigenvectors or factor vectors `freq.bins` single integer number > 1 (the number of intervals), vector of frequency breaks (of length >=2) or list of frequency ranges. For each range, if only one element provided it will be used as the upper bound and the lower bound will be zero `threshold` contribution threshold. If zero then dependent grouping approach will be used `method` method of periodogram interpolation `superpose` logical, whether to plot contributions for all intervals on one panel `order` logical, whether to reorder components by contribution `...` additional arguments passed to `reconstruct` and `xyplot` routines `drop` logical, whether to exclude empty groups from resulted list

## Details

Elementary components are grouped using their frequency contribution (periodogram). Optionally (see argument 'base') periodogram of eigen or factor vectors may be used.

For each elementary component and for each frequency interval (which are specified by 'freq.bins' argument) relative (from 0 till 1) contribution is computed using one of two methods: 'constant' (periodogram is considered as a sequence of separate bars) or 'linear' (periodogram is linearly interpolated).

Two approaches of grouping is implemented:

'independent' or 'threshold'

Each group includes components with frequency contribution in correspondent interval is greater than specified threshold; resulted groups can intersect. If 'threshold' is a vector, correspondent value of threshold will be using for each interval.

'dependent' or 'splitting'

Elementary components are separated to disjoint subsets; for each component interval with the highest contribution is selected.

If 'freq.bins' is named, result groups will take the same names.

If drop = 'TRUE' (by default), empty groups will be excluded from result.

See the paper in 'References' for the details of the algorithm.

## Value

object of class 'grouping.auto.pgram' (list of groups with some additional info) for grouping method; 'trellis' object for plot method.

## References

Alexandrov, Th., Golyandina, N. (2005): Automatic extraction and forecast of time series cyclic components within the framework of SSA. In Proceedings of the 5th St.Petersburg Workshop on Simulation, June 26 – July 2, 2005, St.Petersburg State University, St.Petersburg, Pp. 45–50 http://www.gistatgroup.com/gus/autossa2.pdf

`Rssa` for an overview of the package, as well as, `reconstruct`, `rforecast`, `vforecast`, `parestimate`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18``` ``` ss <- ssa(co2) plot(ss, type = "vectors", idx = 1:12) plot(ss, type = "vectors", vectors = "factor", idx = 1:12) plot(ss, type = "series", groups = 1:12) g1 <- grouping.auto(ss, base = "series", freq.bins = list(0.005), threshold = 0.95) g2 <- grouping.auto(ss, base = "eigen", freq.bins = 2, threshold = 0) g3 <- grouping.auto(ss, base = "factor", freq.bins = list(c(0.1), c(0.1, 0.2)), threshold = 0, method = "linear") g4 <- grouping.auto(ss, freq.bins = c(0.1, 0.2), threshold = 0) g <- grouping.auto(ss, freq.bins = 8, threshold = 0) plot(reconstruct(ss, groups = g)) plot(g) g <- grouping.auto(ss, freq.bins = list(0.1, 0.2, 0.3, 0.4, 0.5), threshold = 0.95) plot(reconstruct(ss, groups = g)) plot(g) ```