owcor: Calculate generalized (oblique) W-correlation matrix In Rssa: A Collection of Methods for Singular Spectrum Analysis

Description

Function calculates oblique W-correlation matrix for the series.

Usage

 `1` ``` owcor(x, groups, ..., cache = TRUE) ```

Arguments

 `x` the input object of ‘ossa’ class `groups` list of numeric vectors, indices of elementary components used for reconstruction. The elementary components must belong to the current OSSA component set `...` further arguments passed to `reconstruct` routine `cache` logical, if 'TRUE' then intermediate results will be cached in 'ssa' object.

Details

Matrix of oblique weighted correlations will be computed. For two series, oblique W-covariation is defined as follows:

owcov(F_1, F_2) = <L* X_1 (R*)^T, L* X_2 (R*)^T>_F,

where X_1, X_2 denotes the trajectory matrices of series F_1, F_2 correspondingly, L = [U_{b_1} : ... : U_{b_r}], R = [V_{b_1}: ... V_{b_r}], where {b_1, …, \b_r} is current OSSA component set (see description of ‘ossa.set’ field of ‘ossa’ object), '<., .>_F' denotes Frobenius matrix inner product and '*' denotes Moore-Penrose pseudo-inverse matrix.

And oblique W-correlation is defined the following way:

owcor(F_1, F_2) = owcov(F_1, F_2) / sqrt(owcov(F_1, F_1) owcov(F_2, F_2))

Oblique W-correlation is OSSA analogue of W-correlation, that is, a measure of series separability. If I-OSSA procedure separates series exactly, their oblique W-correlation will be equal to zero.

Value

Object of class ‘wcor.matrix’

References

Golyandina N. and Shlemov A. (2015): Variations of Singular Spectrum Analysis for separability improvement: non-orthogonal decompositions of time series, Statistics and Its Interface. Vol.8, No 3, P.277-294. http://arxiv.org/abs/1308.4022

`Rssa` for an overview of the package, as well as, `wcor`, `iossa`, `fossa`.

Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15``` ```# Separate two non-separable sines N <- 150 L <- 70 omega1 <- 0.06 omega2 <- 0.065 F <- 4*sin(2*pi*omega1 * (1:N)) + sin(2*pi*omega2 * (1:N)) s <- ssa(F, L) ios <- iossa(s, nested.groups = list(1:2, 3:4), kappa = NULL, maxIter = 200, tol = 1e-8) p.wcor <- plot(wcor(ios, groups = list(1:2, 3:4))) p.owcor <- plot(owcor(ios, groups = list(1:2, 3:4)), main = "OW-correlation matrix") print(p.wcor, split = c(1, 1, 2, 1), more = TRUE) print(p.owcor, split = c(2, 1, 2, 1)) ```

Example output

```Loading required package: svd