Group elementary series using periodogram

Share:

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

See Also

Rssa for an overview of the package, as well as, reconstruct, rforecast, vforecast, parestimate

Examples

 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)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.